• [问题求助] 微服务引擎CSE上的注册和发现,跟Spring Cloud做法是一样的吗?
    微服务引擎CSE上的注册和发现,跟Spring Cloud做法是一样的吗?
  • [问题求助] 如果微服务引擎CSE检测到某个服务CPU或者内存占用接近100%,会做出什么反应?
    如果微服务引擎CSE检测到某个服务CPU或者内存占用接近100%,会做出什么反应?
  • [问题求助] 微服务引擎CSE在哪里设置服务出错多少次,然后进行熔断?
    微服务引擎CSE在哪里设置服务出错多少次,然后进行熔断?
  • 微服务引擎CSE能否防止瞬时大流量导致服务崩溃?
    微服务引擎能否防止瞬时大流量导致服务崩溃?
  • [问题求助] Spring CLoud 的Hystrix就是用来做服务熔断与降级的,那使用了华为云CSE后,还需要引用这个组件吗?
    Spring CLoud 的Hystrix就是用来做服务熔断与降级的,那使用了华为云CSE后,还需要引用这个组件吗?还是CSE帮我们做了这个事情了
  • [问题求助] 用华为云的微服务引擎来部署,跟将spring cloud直接部署在ECS上有啥不同?
    用华为云的微服务引擎来部署,跟将spring cloud直接部署在ECS上有啥不同?
  • [内容拦截申诉] 为什么我的账号异常,被限制互动了
    为什么我的账号异常,被限制互动了?我只发了一篇技术文章,什么也没做呀?
  • [技术干货] 万界星空MES安灯管理:优化生产监控的重要工具
    MES系统安灯管理的原理和功能:1. 状态信号控制:MES系统与生产线设备和传感器集成,通过接收设备状态信号来控制安灯的颜色和闪烁频率。例如,当设备正常运行时,绿色灯亮;当设备出现故障时,红色灯亮。2. 实时监控和显示:MES系统可以实时监控生产线的状态,并在控制室或生产现场的显示屏上显示相应的安灯状态。这使生产人员能够随时了解生产线的运行情况,及时采取行动。3. 警报和通知:当生产线出现异常或故障时,MES系统可以自动触发警报,并通过声音、短信或邮件等方式通知相关人员。4. 数据记录和分析:MES系统可以记录安灯管理的数据,如停机时间、故障频率、维修历史等。5. 故障诊断和维修支持:MES系统可以提供故障诊断和维修支持的功能。当生产线出现故障时,系统可以根据设备状态和故障模式提供维修建议和指导,帮助维修人员快速定位和解决问题。
  • [技术干货] 下一代软件架构,如何构建微服务核心能力?
    随着数字化进程的加速,各种架构设计思想风起云涌,进入百家争鸣时代,微服务架构,云原生架构,Serverless 架构,事件驱动架构,中台架构,容灾架构,到底哪种思潮代表未来呢?未来的架构趋势是什么呢?你同意“微服务架构是下一代软件架构”的说法吗?1.作为开发者,你认为哪种架构思潮可以代表未来呢?2.你同意“微服务架构是下一代软件架构”的说法吗?为什么?
  • [技术干货] 微服务还是单体架构?
    在当今技术领域,微服务和单体架构已成为现代技术领域的焦点议题。这两种架构各有千秋,各有利弊,也引发了不少热烈的探讨和争议。那么你是如何看待这个问题的呢?你认为哪种架构更符合未来云的发展趋势呢?1.为什么会出现微服务和单体架构的争议?2.在实际的业务中,你选择的是微服务还是单体架构?3.在云上,哪种架构更符合未来云的发展趋势呢?
  • [微服务类] 华为CSE引擎能否使用cse://微服务名的形式进行restTemplate调用
    先说依赖:父pom 工程依赖: template: 请求方式:private String thinktanks="cse://bs-performance-thinktanks";String url = commonConfiguration.getThinktanks()+"/xxx"; JSONResult personResult = restTemplate.getForObject(url, JSONResult.class);错误定位:请问,是子工程依赖里面不支持cse://微服务名这种形式的调用,需要额外引包支持吗?需要引的包以及版本怎么确定啊?
  • [技术干货] 容器引擎CCE与微服务引擎CSE笔记分享
    一、容器引擎CCE云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎提供Kubernetes原生API,支持使用kubectl,且提供图形化控制台,让您能够拥有完整的端到端使用体验,使用云容器引擎前,建议您先了解相关的基本概念。集群(Cluster)集群指容器运行所需要的云资源组合,关联了若干云服务器节点、负载均衡等云资源。您可以理解为集群是“同一个子网中一个或多个弹性云服务器(又称:节点)”通过相关技术组合而成的计算机群体,为容器运行提供了计算资源池。节点(Node)每一个节点对应一台服务器(可以是虚拟机实例或者物理服务器),容器应用运行在节点上。节点上运行着Agent代理程序(kubelet),用于管理节点上运行的容器实例。集群中的节点数量可以伸缩。节点池(NodePool)节点池是集群中具有相同配置的一组节点,一个节点池包含一个节点或多个节点。虚拟私有云(VPC)虚拟私有云是通过逻辑方式进行网络隔离,提供安全、隔离的网络环境。您可以在VPC中定义与传统网络无差别的虚拟网络,同时提供弹性IP、安全组等高级网络服务。安全组安全组是一个逻辑上的分组,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当弹性云服务器加入该安全组后,即受到这些访问规则的保护。详细介绍请参见安全组。集群、虚拟私有云、安全组和节点的关系如下图,同一个Region下可以有多个虚拟私有云(VPC)。虚拟私有云由一个个子网组成,子网与子网之间的网络交互通过子网网关完成,而集群就是建立在某个子网中。因此,存在以下三种场景:不同集群可以创建在不同的虚拟私有云中。不同集群可以创建在同一个子网中。不同集群可以创建在不同的子网中。集群、VPC、安全组和节点的关系实例(Pod)实例(Pod)是 Kubernetes 部署应用或服务的最小的基本单位。一个Pod 封装多个应用容器(也可以只有一个容器)、存储资源、一个独立的网络 IP 以及管理控制容器运行方式的策略选项。容器(Container)一个通过 Docker 镜像创建的运行实例,一个节点可运行多个容器。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。工作负载工作负载即Kubernetes对一组Pod的抽象模型,用于描述业务的运行载体,包括Deployment、Statefulset、Daemonset、Job、CronJob等多种类型。无状态工作负载:即kubernetes中的“Deployment”,无状态工作负载支持弹性伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如:nginx、wordpress等。有状态工作负载:即kubernetes中的“StatefulSet”,有状态工作负载支持实例有序部署和删除,支持持久化存储,适用于实例间存在互访的场景,如ETCD、mysql-HA等。创建守护进程集:即kubernetes中的“DaemonSet”,守护进程集确保全部(或者某些)节点都运行一个Pod实例,支持实例动态添加到新节点,适用于实例在每个节点上都需要运行的场景,如ceph、fluentd、PrometheusNode Exporter等。普通任务:即kubernetes中的“Job”,普通任务是一次性运行的短任务,部署完成后即可执行。使用场景为在创建工作负载前,执行普通任务,将镜像上传至镜像仓库。定时任务:即kubernetes中的“CronJob”,定时任务是按照指定时间周期运行的短任务。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。工作负载与Pod的关系编排模板编排模板包含了一组容器服务的定义和其相互关联,可以用于多容器应用的部署和管理。镜像(Image)Docker镜像是一个模板,是容器应用打包的标准格式,用于创建Docker容器。或者说,Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。在部署容器化应用时可以指定镜像,镜像可以来自于 Docker Hub、华为云容器镜像服务或者用户的私有 Registry。例如一个Docker镜像可以包含一个完整的Ubuntu操作系统环境,里面仅安装了用户需要的应用程序及其依赖文件。镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。命名空间(Namespace)命名空间是对一组资源和对象的抽象整合。在同一个集群内可创建不同的命名空间,不同命名空间中的数据彼此隔离。使得它们既可以共享同一个集群的服务,也能够互不干扰。例如:可以将开发环境、测试环境的业务分别放在不同的命名空间。常见的pods, services, replicationcontrollers和deployments等都是属于某一个namespace的(默认是default),而node,persistentVolumes等则不属于任何namespace。服务(Service)Service是将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。使用Kubernetes,您无需修改应用程序即可使用不熟悉的服务发现机制。 Kubernetes为Pods提供自己的IP地址和一组Pod的单个DNS名称,并且可以在它们之间进行负载平衡。Kubernetes允许指定一个需要的类型的 Service,类型 的取值以及行为如下:ClusterIP:集群内访问。通过集群的内部 IP 暴露服务,选择该值,服务只能够在集群内部可以访问,这也是默认的ServiceType。NodePort:节点访问。通过每个 Node 上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到ClusterIP 服务,这个 ClusterIP 服务会自动创建。通过请求:,可以从集群的外部访问一个 NodePort 服务。LoadBalancer:负载均衡。使用云提供商的负载均衡器,可以向外部暴露服务。外部的负载均衡器可以路由到 NodePort 服务和ClusterIP 服务。DNAT:DNAT网关。可以为集群节点提供网络地址转换服务,使多个节点可以共享使用弹性IP。与弹性IP方式相比增强了可靠性,弹性IP无需与单个节点绑定,任何节点状态的异常不影响其访问七层负载均衡(Ingress)Ingress是为进入集群的请求提供路由规则的集合,可以给service提供集群外部访问的URL、负载均衡、SSL终止、HTTP路由等。网络策略(NetworkPolicy)NetworkPolicy提供了基于策略的网络控制,用于隔离应用并减少攻击面。它使用标签选择器模拟传统的分段网络,并通过策略控制它们之间的流量以及来自外部的流量。配置项(Configmap)ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。ConfigMap跟secret很类似,但它可以更方便地处理不包含敏感信息的字符串。密钥(Secret)Secret解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中。Secret可以以Volume或者环境变量的方式使用。标签(Label)标签其实就一对 key/value,被关联到对象上,比如Pod。标签的使用我们倾向于能够标示对象的特殊特点,并且对用户而言是有意义的,但是标签对内核系统是没有直接意义的。选择器(LabelSelector)Label selector是Kubernetes核心的分组机制,通过label selector客户端/用户能够识别一组有共同特征或属性的资源对象。注解(Annotation)Annotation与Label类似,也使用key/value键值对的形式进行定义。Label具有严格的命名规则,它定义的是Kubernetes对象的元数据(Metadata),并且用于Label Selector。Annotation则是用户任意定义的“附加”信息,以便于外部工具进行查找。存储卷(PersistentVolume)PersistentVolume(PV)是集群之中的一块网络存储。跟 Node 一样,也是集群的资源。存储声明(PersistentVolumeClaim)PV 是存储资源,而 PersistentVolumeClaim (PVC) 是对 PV 的请求。PVC 跟 Pod 类似:Pod 消费 Node 资源,而 PVC 消费 PV 资源;Pod 能够请求 CPU 和内存资源,而 PVC 请求特定大小和访问模式的数据卷。弹性伸缩(HPA)Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能。Kubernetes集群可以通过Replication Controller的scale机制完成服务的扩容或缩容,实现具有伸缩性的服务。亲和性与反亲和性在应用没有容器化之前,原先一个虚机上会装多个组件,进程间会有通信。但在做容器化拆分的时候,往往直接按进程拆分容器,比如业务进程一个容器,监控日志处理或者本地数据放在另一个容器,并且有独立的生命周期。这时如果他们分布在网络中两个较远的点,请求经过多次转发,性能会很差。亲和性:可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的损耗。如:应用A与应用B两个应用频繁交互,所以有必要利用亲和性让两个应用的尽可能的靠近,甚至在一个节点上,以减少因网络通信而带来的性能损耗。反亲和性:主要是出于高可靠性考虑,尽量分散实例,某个节点故障的时候,对应用的影响只是 N分之一或者只是一个实例。如:当应用采用多副本部署时,有必要采用反亲和性让各个应用实例打散分布在各个节点上,以提高HA。节点亲和性(NodeAffinity)通过选择标签的方式,可以限制pod被调度到特定的节点上。节点反亲和性(NodeAntiAffinity)通过选择标签的方式,可以限制pod不被调度到特定的节点上。工作负载亲和性(PodAffinity)指定工作负载部署在相同节点。用户可根据业务需求进行工作负载的就近部署,容器间通信就近路由,减少网络消耗。工作负载反亲和性(PodAntiAffinity)指定工作负载部署在不同节点。同个工作负载的多个实例反亲和部署,减少宕机影响;互相干扰的应用反亲和部署,避免干扰。资源配额(Resource Quota)资源配额(Resource Quotas)是用来限制用户资源用量的一种机制。资源限制(Limit Range)默认情况下,K8S中所有容器都没有任何CPU和内存限制。LimitRange(简称limits)用来给Namespace增加一个资源限制,包括最小、最大和默认资源。在pod创建时,强制执行使用limits的参数分配资源。环境变量环境变量是指容器运行环境中设定的一个变量,您可以在创建容器模板时设定不超过30个的环境变量。环境变量可以在工作负载部署后修改,为工作负载提供了极大的灵活性。在CCE中设置环境变量与Dockerfile中的“ENV”效果相同。应用服务网格(Istio)Istio是一个提供连接、保护、控制以及观测功能的开放平台。云容器引擎深度集成了应用服务网格,提供非侵入式的微服务治理解决方案,支持完整的生命周期管理和流量治理能力,兼容Kubernetes和Istio生态。一键开启应用服务网格后即可提供非侵入的智能流量治理解决方案,其功能包括负载均衡、熔断、限流等多种治理能力。应用服务网格内置金丝雀、蓝绿等多种灰度发布流程,提供一站式自动化的发布管理。基于无侵入的监控数据采集,深度整合华为云应用性能管理(APM)能力,提供实时流量拓扑、调用链等服务性能监控和运行诊断,构建全景的服务运行视图。二、华为云微服务引擎微服务引擎(Cloud Service Engine) 是华为云提供的微服务框架,具备一站式服务注册、服务治理、动态配置和分布式事务管理控制台,帮助用户实现微服务应用的开发运维。产品功能提供微服务开发框架打包了微服务注册、发现、通信和治理等基础能力,支持REST和RPC协议。提供微服务治理中心提供微服务负载均衡、限流、降级、熔断、容错等治理能力。提供微服务安全管控提供认证鉴权、黑白名单等能力保障微服务访问安全。提供微服务灰度发布支持按权重和接口参数(例如用户群组或用户所属区域等等)定义微服务灰度发布规则。分布式事务管理提供最终一致性(TCC)和强一致性(WSAT)事务管理框架。非侵入式接入提供Service Mesh服务,可实现非侵入式接入已有微服务。提供统一配置中心支持微服务配置项的发布、变更和通知。提供微服务仪表盘提供微服务实例和接口级吞吐量、时延和成功率的实时监控仪表盘。
  • [问题求助] 创建微服务静态信息文档中可以定制serviceId,请问怎么定制
    创建微服务静态信息文档中可以定制serviceId,请问怎么定制?文档中没有到对应的说明。查看代码,也没找到对应的配置项。地址:cid:link_0
  • [问题求助] 微服务对接本地CSE的配置中心失败,微服务应该怎么对接配置中心?
    没有文档指导微服务的yml文件应该怎么对接到配置中心,应用启动时不能从配置中心获取到配置文件,然后自动在本地去加载配置文件了,随后找不到配置文件报错。微服务侧要怎么写配置文件才能对接配置中心的配置文件?查了文档示例都对接不上。当前的配置文件,配置file-source没用,kie->custom-label这个配置也没用:spring: application: name: account profiles: active: dev cloud: servicecomb: discovery: enabled: true address: http://127.0.0.1:30100 appName: basic-application serviceName: ${spring.application.name} version: 0.0.1 healthCheckInterval: 15 config: serverAddr: http://127.0.0.1:30110 serverType: kie file-source: public.yaml kie: custom-label: public custom-label-value: default找配置中心没获取到配置文件:​​2023-05-05 17:19:00.557 INFO 31252 --- [ main] c.u.j.r.DefaultLazyPropertyResolver : Property Resolver custom Bean not found with name 'encryptablePropertyResolver'. Initializing Default Property Resolver 2023-05-05 17:19:00.558 INFO 31252 --- [ main] c.u.j.d.DefaultLazyPropertyDetector : Property Detector custom Bean not found with name 'encryptablePropertyDetector'. Initializing Default Property Detector 2023-05-05 17:19:00.647 INFO 31252 --- [ main] com.huaweicloud.config.ConfigService : initialize config server type=kie, address=[http://127.0.0.1:30110]. 2023-05-05 17:19:01.149 INFO 31252 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='servicecomb', propertySources=[ServiceCombConfigPropertySource {name='servicecomb'}]}2023-05-05 17:19:01.157 INFO 31252 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:88882023-05-05 17:19:03.225 INFO 31252 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available本地CSE上创建的配置文件:key: publicvalue: |server:port: 8050spring:application:name: accountdatasource:name: orderingsystemurl: jdbc:mysql://localhost:3306/orderingsystem?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8username: rootpassword: *****
  • [技术干货] 云原生CICD微服务
    云原生的通俗解释+画图示意微服务 CICD devops 容器化的关系+四个各自的功能作用云原生:云原生既包含技术(微服务、敏捷基础设施),也包含组织和管理(DevOps,CI/CD等),是一系列Cloud技术、企业管理方法的集合。一套新的技术体系、一种新的工作方法论、云计算发生的必然导向。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。来自华为的解释:Cloud Native是指在云环境下构建、运行、管理软件的新的系统实践范式,充分利用云基础设施与平台服务(IaaS/PaaS),适应云环境,具备(微)服务化、弹性伸缩、分布式、高可用、多租户、自动化等关键特征的架构实践;建立全功能团队、发展全栈工程师并高度协作的组织,采用Devops研发模式、自动化工具,实现微服务持续交付,是支撑Cloud Native架构的最佳组织和工程实践。云原生的四大核心要素便是微服务技术、DevOps、持续交付、容器化。微服务技术:独立开发、发布、交付、部署,使得应用拆分,所有的应用都可以独立的部署、迭代。DevOps开发、测试、交付、运维一体,微服务的最佳组织阵型,使得应用可以快速编译、自动化测试、部署、发布、回滚,让开发和运维一体化。持续交付持续开发、交付、部署、扩容/快速反馈,响应业务需求,让应用可以频繁发布、快速交付、快速反馈、降低发布风险。容器化:容器及其编排,敏捷的基础设施、按需即用,容器化是微服务最佳载体,应用整体开发以容器为基础,实现代码组件复用、资源隔离。四要素的关系:基于云原生的相关技术,设计运行在云上的,充分发挥云优势的应用。一般采用容器的打包、分发、部署的形式,应用内(间)采用微服务的架构,充分利用云提供的组件服务,采用DevOps的组织架构和方法,通过CI/CD工具链,实现产品和服务的持续交付。容器及其编排是底层,微服务的最佳载体。CI/CD是工具,Devops是微服务的最佳组织阵型。