首页 技术 正文
技术 2022年11月14日
0 收藏 575 点赞 5,187 浏览 3539 个字

前言  

  在上一篇文章一年前,我来到国企搞IT 中,和小伙伴分享了我在国企这一年当中的所见,所闻,所想,很高兴能够获得很多同道中人的共鸣。过去一年,我的很大一部分工作都投入到公司技术平台的建设中。Jira,Confluence,Jenkins,Docker,Kubernetes,微服务等等DevOps工具链,技术栈,都是从无到有一步一步搭建起来的,这其中虽然有第三方供应商的支撑,但过程还是非常艰难的。在数字化转型的大浪潮下,各式各样的IT系统也随之立项,落地,从以前的单体,到要求越来越多的微服务架构,以及带来后续日渐繁杂的监控运维工作,无不对IT的技术能力有了更高的要求,也让本就缺乏IT技术大拿的国企信息面临诸多的挑战。实话说,这一年的工作也让我成长了很多!

  正因为有如上诸多的问题,寻找一个稳定的企业级的微服务开发运维平台,是眼前比较清晰的方向。由于公司与华为长期的战略合作关系,华为的微服务开发与运维管理平台ServiceStage,走入我们的视野。搜索了一下全网,确实没有发现涉及ServiceStage方面的文章。所以,在接下来的几篇文章中,我将以真实的POC验证角度,通过改造迁移公司已有的一个微服务项目,一步一为大家分享如何接入ServiceStage、CSE等华为已有的企业级Paas平台,也欢迎朋友帮忙评估建议ServiceStage的能力。

ServiceStage

  ServiceStage是一个应用托管和微服务管理平台,可以帮助企业简化部署、监控、运维和治理等应用生命周期管理工作。面向企业提供微服务、移动和Web类应用开发的全栈解决方案,帮助您的各类应用轻松上云,聚焦业务创新,帮助企业数字化快速转型。

以下是ServiceStage提供的能力概况,从整张生态图来讲,确实提供的能力是很全面的,跟多应用场景可参考 。

微服务改造

由于之前大部分项目都是通过Spring Cloud全家桶进行架构的,这里我们直接使用Spring Cloud Huawei来改造我们已有的微服务架构。

官方文档: https://support.huaweicloud.com/devg-servicestage/cse_java_0054.html

项目地址: https://github.com/huaweicloud

注册中心改造

pom引入,这里直接引入huawei ServiceComb服务注册组件,移除consul的依赖。

<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-servicecomb-discovery</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-consul-discovery</artifactId>-->
<!-- </dependency>-->

application.yml指向注册中心。这里由于暂时是本地改造微服务架构,没有连接云上的微服务管控控制台,所以这里直接下载Local CSE的客户端,点击start.bat启动

启动成功之后,访问http://localhost:30106/ 即可看到本地版的CSE控制台页面。

application.yml改动

spring:
cloud:
servicecomb:
discovery:
address: http://127.0.0.1:30100 --30100为服务注册端口

main app保留注解,并启动

@EnableDiscoveryClient

成功之后,便可以在CSE控制台看见注册成功的服务列表

 配置中心改造

配置中心的改造也比较简单,移除原有的配置中心依赖,pom引入spring-cloud-starter-huawei-config

<!--        <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-config</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>spring-cloud-starter-huawei-config</artifactId>
</dependency>

bootstrap.yml替换原有的spring cloud config配置中心的方式,如下

spring:
application:
name: admin
cloud:
servicecomb:
config:
serverAddr: http://127.0.0.1:30113
watch:
delay: 10000
credentials:
enabled: false

测试配置中心

@RefreshScope
@RestController
@RequestMapping("/servicestage")
public class ServiceStageController implements ApplicationListener<ConfigRefreshEvent> { @Value("${dd:}")
private String dd;
@RequestMapping("/price")
public String sayHello(@RequestParam("id") String id) { return "price ---> " + id;
} @Override
public void onApplicationEvent(ConfigRefreshEvent event) {
System.out.println("change = [" + event.getChange() + "]");
}
}

访问 http://localhost:30106/#/cse/services/config,添加配置,作用域下拉列表可选择作用于哪个服务,配置key, value

测试访问

修改配置文件,将dd改为其他值,测试refreshscope功能,可见配置自动更新。

日志打印

2020-11-24 13:31:22.558 [ThreadPoolTaskScheduler-1] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'dd' in PropertySource 'bootstrapProperties' with value of type String
2020-11-24 13:31:22.558 [ThreadPoolTaskScheduler-1] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'dd' in PropertySource 'bootstrapProperties' with value of type String
2020-11-24 13:31:22.559 [ThreadPoolTaskScheduler-1] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'dd' in PropertySource 'bootstrapProperties' with value of type String
2020-11-24 13:31:22.559 [ThreadPoolTaskScheduler-1] DEBUG o.s.core.env.PropertySourcesPropertyResolver - Found key 'dd' in PropertySource 'environmentProperties' with value of type String
change = [[dd]]

重新访问服务,配置已更新

网关

网关目前依旧是Spring Cloud ApiGateway的方式,无需额外配置。

以上为主要微服务组件的改造工作,其他微服务治理相关,目前huawei还在迭代中,后续我们将改造的微服务部署在华为云上。

<End>

小墨唯一公众号 《DevOps特种部队》,分享我在国企数字化转型中,DevOps领域所有相关技术栈,也包含职场的苦与乐,希望各位朋友搜索或者扫描下方图片一键关注,给个支持!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902