基于Spring Boot 2.0的IoT应用集成和使用CSE实践( 二 )


文章插图
改造后,运行时简图如下 。CSE客户端和服务端均提供了统一一致的处理链,并默认实现了[负载均衡]()、[熔断容错]()、[流量控制]()等功能 。

基于Spring Boot 2.0的IoT应用集成和使用CSE实践

文章插图
运行时功能的一个核心特征是快速完成了应用微服务化改造 。微服务的一个基本特征是多实例,通过网络接口进行通信 。因此解决服务发现问题以及通信不可靠性问题是进行微服务化的一个基本保障 。通过集成CSE,帮用户快速构建这些能力,减少了需要学习和开发其他 Boot、 Cloud组件的成本 。
CSE本身也提供了丰富的开发和扩展能力,可以从[设计]()和[指南]()了解CSE的更多信息 。
开发方式变化
使用 Boot 2,开发者可以使用或者使用Feign来访问服务端接口 。CSE也支持两种方式和RPC 。相比较于Feign,CSE的RPC更加简洁,无需在客户端定义和使用REST标签 。
@RpcReference(microserviceName= "hello", schemaId = "hello")privateHello hello;System.out.println(hello.sayHi("JavaChassis"));
这种方式适用于采用CSE框架开发的微服务之间的访问 。如果访问第三方,CSE也提供了类似Feign的机制,并且提供了比Feign强大的负载均衡管理和治理能力(处理链) 。相关例子可以参考代码[示例]() 。
通过集成CSE,开发者可以方便的在代码中随时使用REST和RPC,非常灵活,大大节省书写代码的时间 。
周边工具变化
上面的讨论都限制在微服务本身 。为了保证业务功能能够持续高效运行运维,还需要给微服务提供一个功能强大的运行环境,实现微服务运行状况的监控、微服务功能的实时调整(流量控制、灰度发布、熔断容错等) 。这里可以借助于商业解决方案快速实现或者开源解决方案自行搭建 。
l 商业解决方案
华为[微服务引擎]()提供了一站式微服务管理功能 。将改造的应用部署到微服务引擎,即可实现微服务目录查看、接口管理、动态治理等多种功能 。
微服务引擎的核心组件包括服务中心、配置中心和治理中心 。除了将业务部署到云上,开发者可以在本地使用这些服务,只需要有可用的网络连接,注册华为云微服务引擎并获取AK/SK身份信息 。[买房系统]()提供了一个本地使用华为云服务的例子 。开发者只需要在.yml中配置AK/SK信息和服务中心地址信息等 。
l 开源解决方案
[服务中心]() 。服务中心提供了注册发现服务,还提供了前端服务,用于查看服务目录和进行接口测试 。
[配置中心]() 。这个是携程开发的配置中心 。CSE支持通过 扩展,使用各种配置服务 。
[调用链]() 。这个标准的调用链服务 。CSE支持通过扩展实现了与调用链对接 。
[调用链]() 。
可以从[开发指南]()了解如何集成和使用这些开源组件 。
CSE本身作为 Boot 2.0的一个运行,因此 Boot、 Cloud提供的大多数组件,用户也可以选择使用 。Cloud场景会选择等作为服务发现服务,CSE需要使用服务中心作为服务发现 。在服务中心选择上,目前还未有统一的标准,配套的SDK只能采用推荐的服务发现工具 。
负载均衡和隔离能力展示
这里通过一个例子展现改造后,负载均衡能力和隔离能力 。这个[例子]()展现了在多实例部署情况下,滚动升级零中断 。
[购房系统]()实现了一个完整的 cloud应用,可以使用这个系统进行体验 。
使用调用链追踪能力展示
这里演示快速在系统中构建调用链跟踪能力 。改造后的引用只需要引入调用链jar包和在.yml中增加处理链配置和服务器地址,并安装服务器,就能够使用调用链了 。[开发步骤]() 。