您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center 汽车系统工程   模型库  
会员   
   
OCSMP认证课程:OCSMP-MU
4月9-10日 线上
基于模型的数据治理与数据中台
5月19-20日 北京+线上
网络安全原理与实践
5月21-22日 北京+线上
     
   
 订阅
  捐助
最简单的微服务部署测试实践
 
 
  1172  次浏览      30
 2021-9-10
   
 
编辑推荐:
本文介绍一种简单的微服务技术架构。帮助大家对微服务如何部署,如何开发有个初步的认识。
本文来自于segmentfault,由火龙果软件Linda编辑、推荐。

微服务特别适合业务复杂,开发队伍庞大的项目。微服务可以到达化整为零,简化单个服务,降低沟通成本的效果。但微服务在性能上比单体服务低,也会有数据冗余的问题,要结合自身情况,不要盲目崇拜。

本文介绍一种简单的微服务技术架构。帮助大家对微服务如何部署,如何开发有个初步的认识。

一个简单的微服务架构

部署图如下

nginx:

对外统一入口,根据url将请求分发到不同微服务,用ip:port区分不同的微服务。也会直接处理一些静态资源的访问,本身就是web服务器。

springboot+dubbo:

spring boot是目前最流行的开发web服务的框架(jsp,ejb,ssh这些框架过于老旧),它和微服务没有必然联系,但它结合dubbo可以开发微服务,要求就是spring boot工程要import dubbo.jar或者使用maven引入dubbo。配置dubbo-application.xml,里面写好zookeeper服务地址端口以及提供者和消费者要注册的接口方法。

一个微服务要调用另一个微服务的方法,只需要@Autowired注册接口类的对象,用对象调用方法即可。麻烦点的是各个微服务对同一个接口方法要有一致的接口描述java文件,使用maven管理描述接口的jar包可以有效解决接口一致的问题。

最后打jar包,java -jar ***.jar一个微服务就启动了。

zookeeper:

springboot需要dubbo,而dubbo最推荐的服务注册中心是zookeeper,相当于一个公告板,各个微服务都可以看到上面注册的提供者和消费者的接口方法

DB:

MySQL Oracle等

redis:

缓存session数据,和其它有必要缓存的业务数据

tomcat+dubbo-admin:

dubbo管理系统,用于监控和排查故障,部署在tomcat下,可以在浏览器上查看各个微服务的运行情况,查看某个方法是否可以被正常调用。

积分查询业务场景,帮助理解微服务。

B服务提供检查登陆状态功能。A服务提供查询账号积分功能。

当用户在app点击查询积分时,nginx看见url里有查询积分关键字,会根据nginx.conf的配置将请求发送到A服务,app会有个sessionid发送给A服务,A服务远程调用B服务的检查登陆状态的接口,将sessionid传给接口,B服务接口被调用,使用sessionid到redis查用户信息,如果查询到redis有对应的用户信息,将用户信息返回,A服务接收到远程调用接口返回的用户信息userid,接下来根据用户信息到数据库DB查询积分情况。

这就是两个微服务配合实现一个业务的例子,用到了架构图中的全部单元。查询登陆状态的要求在各个业务都存在,所以会有很多微服务需要远程调用B服务的接口。同时每个微服务可以即是提供者,又是消费者。

在windows下配置一套完整的微服务开发环境。

redis

D:\Program Files\Redis-x64-3.0.504>redis-server.exe redis.windows.conf

图我忘截了

zookeeper

双击zkServer.cmd

tomcat和dubbo-admindubbo-admin

需要github上下载,然后单独对dubbo-admin进行编译打war包,war包放到tomcat的webapps目录下,tomcat启动时会自动解压出文件夹,如下图

打开 http://127.0.0.1:8080/dubbo-admin-2.5.8/ (我最初打开页面卡死,后来删除tomcat/log里的全部日志后正常了)

用户名root 密码root

没有启动任何微服务所以上图各项都是空的。在Intellij IDEA运行两个微服务(cmd里java -jar 启动微服务jar包也可以,但调试修改代码不太方便)

可以看到dubbo管理系统可以看见两个服务,一个是提供者,一个是消费者。里面可以查看名称,状态,日志,对排错挺有帮助的。

测试dubug

浏览器输入登陆的url可以看到打开登录页面。

到此一个微服务系统的开发调试环境就完成了。如果只测试后端服务不关心浏览器和app界面的功能,可以使用postman工具,直接发送url给服务端,查看返回的json数据等是否达到预期要求。

 
   
1172 次浏览       30
相关文章

企业架构、TOGAF与ArchiMate概览
架构师之路-如何做好业务建模?
大型网站电商网站架构案例和技术架构的示例
完整的Archimate视点指南(包括示例)
相关文档

数据中台技术架构方法论与实践
适用ArchiMate、EA 和 iSpace进行企业架构建模
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

云平台与微服务架构设计
中台战略、中台建设与数字商业
亿级用户高并发、高可用系统架构
高可用分布式架构设计与实践
最新活动计划
嵌入式软件架构设计 12-11[北京]
LLM大模型与智能体开发实战 12-18[北京]
嵌入式软件测试 12-25[北京]
AI原生应用的微服务架构 1-9[北京]
AI大模型编写高质量代码 1-14[北京]
需求分析与管理 1-22[北京]
 
最新文章
大数据平台下的数据治理
如何设计实时数据平台(技术篇)
大数据资产管理总体框架概述
Kafka架构和原理
ELK多种架构及优劣
最新课程
大数据平台搭建与高性能计算
大数据平台架构与应用实战
大数据系统运维
大数据分析与管理
Python及数据分析
更多...   
成功案例
某通信设备企业 Python数据分析与挖掘
某银行 人工智能+Python+大数据
北京 Python及数据分析
神龙汽车 大数据技术平台-Hadoop
中国电信 大数据时代与现代企业的数据化运营实践
更多...