
容器(Docker)&虚拟机&云服务
文章平均质量分 77
AlbenXie
这个作者很懒,什么都没留下…
展开
-
Tomcat优化
通过上述的测试,可以总结出,对tomcat性能优化就是需要不断的进行调整参数,然后测试结果,可能会调优也可能会调差,这时就需要借助于gc的可视化工具来看gc的情况。再帮我我们做出决策应该调整哪些参数。转载 2023-07-01 20:59:56 · 171 阅读 · 0 评论 -
消息队列常见问题总结
如果采用推送的方式,A 系统通过接口调用发送数据到 B、C、D 三个系统,A 系统的维护成本就非常的高,而且 A 系统要时时刻刻考虑B、C、D 四个系统如果出现故障该怎么办?使用消息队列就可以解决这个问题。A 系统只负责生产数据,不需要考虑消息被哪个系统来消费。转载 2023-04-23 17:36:23 · 182 阅读 · 0 评论 -
线上排查:内存异常使用导致full gc频繁
本次问题产生的根本原因是因为开启了@EnableCircuitBreaker注解,开启了Hystrix指标功能,导致Histogram实例大量进入老年代,只有full gc才可以回收。转载 2023-04-21 17:05:53 · 374 阅读 · 0 评论 -
Lombok原理就是这么简单
从上面的Lombok执行的流程图中可以看出,在Javac 解析成AST抽象语法树之后, Lombok 根据自己编写的注解处理器,动态地修改 AST,增加新的节点(即Lombok自定义注解所需要生成的代码),最终通过分析生成JVM可执行的字节码Class文件。接下来,我们进行lombok的原理分析,以Oracle的javac编译工具为例。编译机会调用lombok程序对第一步得到的AST进行处理,找到其注解所在类对应的语法树(AST),然后修改该语法树,增加注解对应的方法或代码片段到定义的相应树节点;转载 2023-02-24 17:27:10 · 498 阅读 · 0 评论 -
Java Agent 探针技术
是指 JVM 提供的一种进程间通信的功能,能让一个进程传命令给另一个进程,并进行一些内部的操作,比如进行线程 dump,那么就需要执行 jstack 进行,然后把 pid 等参数传递给需要 dump 的线程来执行。这里每个类加载的时候都会走这个方法,我们可以通过className进行指定类的拦截,然后借助javassist这个工具,进行对Class的处理,这里的思想和反射类似,但是要比反射功能更加强大,可以动态修改字节码。查找类的特定于平台的机制失败后,引导类加载器会搜索这些路径。按列出的顺序搜索路径。转载 2023-02-24 17:13:54 · 1729 阅读 · 0 评论 -
全链路灰度
这里的服务概念就比较模糊了,可以是特定版本的服务,比如说V1、V2。也可以是,服务起来之后打对应tag标签,这一类的服务是灰度标识,灰度流量走这边~其中能负载的是那种根据serviceId来查询服务,如果你通过host、url那种来请求,拜拜了,干不了。其实很简单,首先我们需要一套规则体系,rule,然后在网关层进行筛选流量,进行打标。在网关流量染色之后,通过Nacos注册中心,改写负载均衡算法,进行路由到对应的服务。这个更好理解了,小明是老赖,我看见小明就知道他是老赖,不需要去翻他资料,对吧。转载 2023-02-21 21:37:31 · 796 阅读 · 0 评论 -
nacos+ribbon+feign+gateway设计实现灰度方案
2、服务消费者基于 Feign 调用服务提供者对外发布的接口,先对调用的本地接口加上注解@FeignClient,Feign会针对 加了该注解的接口生成动态代理,服务消费者会针对 Feign 生成的动态代理去调用方法时,在底层会生成Http协议格式的请求,类似 /stock/deduct?ZuulFilter, 后面的案例多了, 我们就发现, 其实zuul网关的本质就是拦截器, zuul的各种功能,也是通过拦截器来实现的。1. 根据需要设置灰度规则, 比如: 城市, 大班, 小班, 版本号, 学科等,转载 2023-02-21 21:32:32 · 1549 阅读 · 0 评论 -
MSE 支持 Apache Shenyu 网关实现全链路灰度
我们希望可以对这些服务的新版本同时进行小流量灰度验证,这就是微服务架构中特有的全链路灰度场景,通过构建从网关到整个后端服务的环境隔离来对多个不同版本的服务进行灰度验证。比如在上图中,以 RocketMQ 为例,C 应用生产消息,A 应用消费消息,那么如何做到 C 应用的 gray 节点的消息,只能被 A 应用的 gray 节点消费。在发布过程中,我们只需部署服务的灰度版本,流量在调用链路上流转时,由流经的网关、各个中间件以及各个微服务来识别灰度流量,并动态转发至对应服务的灰度版本。转载 2023-02-21 21:16:43 · 350 阅读 · 0 评论 -
利用阿里云的MSE,上一个真正的灰度发布方案
如果路由线上版本,返回:device.v1111 -> charge.v1111 --> order.v1111 --> base.v1111 (userId: xxx)如果路由灰度版本,返回:device.v1111 -> charge.v2222 --> order.v2222 --> base.v1111 (userId: xxx)例如桩服务中设置mse-deviceCode,网关服务设置mse-userId, mse-userName, mse-ipAddress等。转载 2023-02-21 17:23:44 · 746 阅读 · 0 评论 -
全链路灰度新功能:MSE上线配置标签推送
然而配置中心的管理维度仅仅是配置项本身,并不能感知到前来获取配置的服务实例的环境信息,即无法区分请求配置的是正式环境的实例还是灰度环境的实例。更极端的场景下,如果在测试的灰度环境还有多套,每套环境中的配置值都不同,负责获取配置项的代码还会更复杂。在弹出的推送窗口中,我们选择需要推送的标签,并设置待推送的配置值,点击“下一步:值对比”,可以看到新老配置项的差异。除了微服务实例和流量的灰度,微服务应用中的配置项也应该具备相应的灰度能力,以应对灰度应用对特殊配置的诉求。针对标签的配置值推送都是持久化的。转载 2023-02-21 14:34:49 · 200 阅读 · 0 评论 -
Nacos 集群部署3
这里只是测试,使用的单机版nginx为Nacos集群提供一个统一的入口并使用默认的轮询策略实现简单的负载均衡。准备四台网络互通并能上外网的主机,这里使用的是四台虚拟机,Nacos节点所需的JDK和Maven均已装好。挂载SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),直连SLB即可,下面挂server真实ip,可读性不好。域名 + SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换ip方便,推荐模式。在3个Nacos节点上都执行以下命令进入Nacos Server的。转载 2023-01-11 16:05:30 · 675 阅读 · 0 评论 -
Nacos 集群部署2
Nacos支持三种部署模式单机模式 - 用于测试和单机试用。集群模式 - 用于生产环境,确保高可用。多集群模式 - 用于多数据中心场景。注:本文以Linux CentOS7系统为讲述如何部署集群模式(cluster);(虚拟机使用VMware)老规矩环境准备,请确保是在环境中安装使用:64 bit OS Linux/Unix/Mac,推荐使用Linux系统。下载.配置。下载.配置。集群需要依赖mysql,单机可不必3个或3个以上Nacos节点才能构成集群。转载 2023-01-10 18:08:47 · 500 阅读 · 0 评论 -
Nacos 集群部署1
在所有 nacos目录的conf的目录下,有个文件 cluster.conf.example ,将其命名为 cluster.conf,并将每行配置成ip:port。(请配置3个或3个以上节点)在所有 nacos目录的conf的目录下,有个文件 application.properties ,并将修改端口和地址、配置数据库连接。转载 2023-01-10 17:40:34 · 494 阅读 · 0 评论 -
java中日志打印规范
根据不同的日志级别,打印在不同的日志文件中,例如debug、info、warn、error日志级别的日志分别创建一个日志文件debug.log、info.log、warn.log、error.log进行日志打印;使用log来打印日志会记录到日志文件中,占用的是磁盘内存,一般不会经常出现卡(运行极慢)的现象,但如果磁盘内存占用比较高时,需要对日志进行备份处理,然后清理日志;业务系统中,核心功能的代码,尽可能打印日志完整,核心代码执行频率极高,出问题时,根据日志信息能快速定位。转载 2022-12-01 15:34:50 · 3782 阅读 · 0 评论 -
中台战略-建中台与拆中台
说到中台,绕不开阿里,应该说阿里带火了国内的中台建设,此后,不断涌现出多种新业态的中台,如数据中台、技术中台、业务中台等。但是从2020年下半年开始,阿里又开始拆中台,于是乎,业界一片惊奇,甚至有些企业,还没有建立中台,甚至在建中台,忽然阿里又开始拆中台了,不免疑惑。于此,我也说说自己的看法,一家之言,或者说也是通过在不断的学习过程中,以及拜读其他的一些大神的著作进行思考。转载 2022-10-18 16:24:10 · 306 阅读 · 0 评论 -
logback配置
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="./logs"/> <property name="APP_NAME" value="benefits-core"/> <pr.原创 2022-05-27 22:51:00 · 208 阅读 · 0 评论 -
灰度发布&蓝绿发布
应用现状应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。如果直接将某版本上线发布给全部用户,一旦遇到线上事故(或BUG),对用户的影响极大,解决问题周期较长,甚至有时不得不回滚到前一版本,严重影响了用户体验。解决方案长期以来,业务升级逐渐形成了几个发布策略:灰度发布、蓝绿发布、A/B测试、滚动升级以及分批暂停发布,尽可能避免因发布导致的流量丢失或服务不可用问题。本文着重介绍灰度发布和蓝绿发布的原理及实践案例。灰度发布,又称金丝雀发转载 2022-05-26 17:36:09 · 1780 阅读 · 0 评论 -
【案例分享】如何使用数据迁移服务将大量数据快速导入到MYSQL
【摘要】 CDM(数据迁移服务)是华为云提供的界面向导式数据迁移服务,支持对关系数据库、NoSQL数据库、大数据、搜索、FTP等20多种数据源的导入导出。与传统数据迁移工具使用INSERT INTO语句导入不同,CDM会利用MYSQL本地API加速数据导入,导入速度大约提升10倍。下面介绍如何使用CDM将OBS数据导入到MYSQL。配置MYSQL参数,打开local_infile开关在数据迁移服务,创...CDM(数据迁移服务)是华为云提供的界面向导式数据迁移服务,支持对关系数据库、NoSQL数据库.转载 2022-05-26 17:33:32 · 428 阅读 · 0 评论 -
nginx更改配置文件后重启
一、找到nginx安装的位置whereis nginxnginx: /usr/local/nginx实例:二、替换配置文件进入配置文件 cd /usr/local/conf备份配置文件,上传最新的配置文件。三、检查配置文件正确性进入nginx/sbin目录cd /usr/local/nginx/sbin检查配置文件,如果错误,根据提示原因,修改配置文件。./nginx -t实例:四、重启nginx配置文件./...转载 2022-05-08 21:04:07 · 8466 阅读 · 0 评论 -
springboot maven 项目打包jar 名称自定义
1、打成jar名字的设置maven 文件打包,输入 :package -Dmaven.test.skip=true 进行打包,一般生成的jar文件名称是:项目名+版本号在pom.xml 中加入finalname 属性,就可以获得稳定的jar名称<build> <finalName>pay</finalName> <plugins> <plugin> <groupId>org.springframework转载 2022-03-25 22:26:14 · 9751 阅读 · 0 评论 -
运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容
本篇博客采用腾讯邮箱,想必大家都对QQ很了解,所以我就直接用QQ邮箱来发送数据。我之前测试过163邮箱也是好使的,当然你用你公司自己的邮箱配置也是可以的,操作方法都大同小异。一.获取邮箱的授权码1>.登录QQ邮箱,查看账户设置,如下图所示2>.查看设置收发邮件的方式 连接地址:常用邮件客户端软件设置_QQ邮箱帮助中心3>.查看腾讯的smtp邮箱配置(很显然,腾讯的smtp服务的端口是465,这个端口一会在zabbix配置上回用到,暂且你就先有个影响!)转载 2022-03-02 20:09:19 · 3317 阅读 · 0 评论 -
WGCLOUD运维监控系统邮件告警配置说明
邮件告警配置比较简单,不过还是写一下,因为有时候大家可能会忽略一些细节本文以qq邮箱发送为例说明,邮件告警配置成功后,所有告警通知都会自动发送邮件,如果不想接收邮件了,删除邮件告警设置即可。qq邮件发送需要注意的地方,邮件发送密码不是qq登陆密码,而是授权码,需要去邮箱手动获取,下图是标识怎么获取qq邮箱的授权码,点击邮箱设置->账户->生成授权码记得在账户下设置开启SMTP服务,然后点击【生成授权码】,得到授权码后先保存下来,后面要用下面开始设置邮件告警设置完成转载 2022-03-02 19:49:31 · 671 阅读 · 0 评论 -
Spring Boot Undertow替换Tomcat
优化spring bootUndertow是Wildfly的web服务器,性能不必多说,在嵌入微服务方面比tomcat更小。gradle环境configurations { compile.exclude module: 'spring-boot-starter-tomcat'}dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.springfra转载 2022-02-25 20:53:14 · 616 阅读 · 0 评论 -
SpringBoot使用Undertow代替Tomcat
1、Undertow使用spring boot内嵌容器默认为tomcat,想要换成undertow,非常容易,只需修改spring-boot-starter-web依赖,移除tomcat的依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exc转载 2022-02-25 20:50:48 · 1400 阅读 · 1 评论 -
业务中台数据一致性方案
简介:随着业务的发展,微服务架构逐渐成为当下业务中台的主流架构形式,它不但解决了各个应用之间的解耦问题,同时也解决了单体应用的性能问题实现可扩展可动态伸缩的能力。如下图所示,业务中台就是将平台的通用能力进行下沉,避免重复建设,形成底座平台能力,上层的各个应用服务都是基于中台能力进行快速构建。但是随着应用规模的扩大,原本在单体应用中不是问题的问题,在微服务架构中可能就是比较严重的问题,本文所要探讨的服务之间的数据一致性便是其中最具代表性的问题。本文将结合常见的电商下单场景来说明业务中台数据一致性方案。引.转载 2022-01-10 15:43:36 · 563 阅读 · 0 评论 -
解读服务网格的2021:告别架构“大跃进”,技术生态百家争鸣
简介:服务网格的 2021,“稳” 字当先。不管是原生社区发展,还是行业实践落地,都以 “稳定” 为第一要义。少了前几年大跃进式的架构演进、功能更迭,多了更务实、更落地的行业探索与实践,2021 年的服务网格正从当年那个狂奔的“少年”、“流量明星”,成长为真正的“实力派”,逐步进入成熟期,被更多行业、企业和标准化组织所接纳。本文将从社区进展、实践落地、行业标准、技术生态等角度回顾服务网格的 2021,帮助读者了解过去一年服务网格的整体进展,为企业选型、落地服务网格提供一些参考。本文是“2021 Inf.转载 2022-01-10 15:36:03 · 639 阅读 · 0 评论 -
网易开源 Slime:让 Istio 服务网格变得更加高效与智能
作者简介杨笛航,Istio 社区成员,网易数帆架构师,负责轻舟 Service Mesh 配置管理,并主导 slime 组件设计与研发,参与网易严选和网易传媒的 Service Mesh 建设。具有三年 Istio 控制面功能拓展和性能优化经验。Slime 是网易数帆旗下轻舟微服务团队开源的服务网格组件,它可以作为 Istio 的 CRD 管理器,旨在通过更为简单的配置实现 Istio/Envoy 的高阶功能。目前 slime 包含三个非常实用的子模块:1. 配置懒加载:无须手动配置 S...转载 2022-01-10 14:58:34 · 1260 阅读 · 0 评论 -
Sidecar模式
Sidecar模式:将应用程序的组件部署到单独的进程或容器中,以提供隔离和封装。此模式还允许应用程序由异构组件和技术实现。为什么称为Sidecar模式,是因为它类似于连接在摩托车旁的边车。在该模式中,sidecar服务被附加到主应用程序中,并为应用程序提供其所支持的特性。sidecar也与主应用程序有相同的生命周期,与主应用程序一起创建和退出。sidecar模式有时被称为sidekick模式,它是一种分解模式。背景和问题应用程序和服务通常需要一些相关的基础功能,如监控、日志、配置和网络服务。这些转载 2022-01-10 14:19:52 · 763 阅读 · 0 评论 -
微服务架构模式之 sidecar 模式(下):应用实例
这篇分享学院君主要通过示例代码的方式演示在 PHP 中基于 Micro Proxy 实现微服务的注册和引用,并使其能够与现有的其它语言实现的微服务(如 Go、Python、Java 等)可以相互通信。整体思路整体实现思路如下:我将基于 PHP 的 Swoole 扩展来实现一个 HTTP 服务器提供对外的微服务接口,在 HTTP 服务器启动时,将该服务节点注册到 Go Micro 的注册中心(Consul),接下来,当用户通过 HTTP 发起远程服务请求时(通过 Micro Proxy),转载 2022-01-10 14:09:45 · 790 阅读 · 0 评论 -
微服务架构模式之 sidecar 模式(上):原理概述
问题引入应用程序和服务通常需要一组相关的外围功能,例如监控、日志记录、配置和网络服务等。对于单应用程序程序而言,这些外围功能往往紧密集成在主应用程序中,好处是可以在运行主应用程序的同一个进程中共享内存资源,不过,这也意味着无法对它们进行有效的隔离,当其中一个组件发生故障,可能会影响到其他组件甚至整个应用程序的正常运行,此外,这样做的另一个局限是需要使用与主应用程序相同的语言来开发这些外围组件。因此,外围组件和主应用程序之间保持着紧密的耦合关系。如果单应用程序被分解为不同的微服务,则可以使用不同的转载 2022-01-10 13:57:19 · 2916 阅读 · 0 评论 -
sidecar模式:下一代微服务架构的关键
Sidecar设计模式正在收到越来越多的关注和采用。作为Service Mesh的重要要素,Sidecar模式对于构建高度高度可伸缩、有弹性、安全且可便于监控的微服务架构系统至关重要。而Service Mesh也已经被证明,正在改变企业IT的“游戏规则”,它降低了与微服务架构相关的复杂性,并提供了负载平衡、服务发现、流量管理、电路中断、遥测、故障注入等功能特性。什么是Sidecar模式?Sidecar模式是一种将应用功能从应用本身剥离出来作为单独进程的方式。该模式允许我们向应用无侵入添加多种功能,避原创 2022-01-10 11:19:26 · 645 阅读 · 0 评论 -
Service Mesh:什么是Sidecar模式
谈到Service Mesh微服务架构,就不得不谈Sidecar模式——一种单节点、多容器的应用设计形式。Sidecar主张以额外的容器来扩展或增强主容器,而这个额外的容器被称为Sidecar容器。一些例子如下:Web-server容器可以与一个sidecar容易共同部署,该sidecar容器从文件系统中读取由Web-server容器生成的web-server日志,并将日志/stream发送到原称服务器(remote server)。Sidecar容器通过处理web-server日志来作为web-serve转载 2022-01-10 11:13:08 · 667 阅读 · 0 评论 -
SpringCloud Alibaba微服务实战二 - 服务注册
导读:在之前一篇文章中我们准备好了基于SpringCloud Alibaba的基础组件,本期主要内容是将所有的服务注册进 Nacos,并让account-service和product-service能对外提供基础的增删改查能力。基础框架搭建在你的 IDEA 中建立一个多模块的项目(过程略...),项目整体截图如下:在主 pom 中定义基础组件版本,使用dependencyManagement引入版本依赖。<properties> <java.version&g转载 2021-11-07 19:23:35 · 304 阅读 · 0 评论 -
Apache Http Server
简介Apache HTTP Server(简称Apache),是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其具有的跨平台性和安全性,被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,可以创建一个每天有数百万人访问的Web服务器。Apache和Tomcat区别Apache侧重于HTTPServer ;Tomcat侧重于Servlet引擎,如果以Standalone方转载 2021-10-09 09:40:13 · 4195 阅读 · 0 评论 -
利用Dockerfile部署SpringBoot项目
1、创建一个SpringBooot项目并且打成jar包2、在Linux中创建一个文件夹,来做docker测试[root@izwz90lvzs7171wgdhul8az ~]# mkdir /root/docker_test3、将jar包上传到Linux中创建存放jar包的文件夹[root@izwz90lvzs7171wgdhul8az docker_test]# mkdir /root/docker_test/jar然后利用XShell上传jar包到上面的文件夹中4、编写转载 2021-04-12 13:30:49 · 843 阅读 · 0 评论 -
SpringBoot项目制作Dockerfile镜像部署
在工作中部署项目貌似是运维人员的工作,很多开发者并不是很关注这方面,但现在在很多的IT互联网公司的实际开发中,其实开发和测试、运维的边界是会越来越小的,甚至会融为一体,你开发的项目往往需要你来测试,部署之后线上出了问题还是需要自己负责去维护,排查bug等,所以说运维更是开发人员中非常重要的一部分。第一步:将SpringBoot项目打成jar包利用idea的maven工具常见的两种方式:先点击clean,再点击package 先点击clean,再点击installclean,清理,在进行转载 2021-04-12 13:24:11 · 1122 阅读 · 0 评论 -
学习dockerfile指令,用docker将一个springboot项目打包成一个镜像并运行
太长不读版: 案例地址:https://github.com/gholly/docker-scaffold.git1. Dockerfile是什么?Dockerfile是Docker用来构建镜像的文本文件,包含自定义的指令和格式。可以通过docker build命令从Dockerfile中构建镜像。2. 镜像构建过程Dockerfile描述了组装镜像的步骤,其中每条指令都是单独执行的。除了FROM指令,其他每一条指令都会在上一条指令所生成镜像的基础上执行,执行完后会生成一个新的镜像层,.转载 2021-04-12 13:15:16 · 454 阅读 · 0 评论 -
OSS阿里对象存储服务 官方学习地址
OSS官方学习路径:https://help.aliyun.com/learn/learningpath/oss.html?spm=a2c4g.11186623.2.32.60493470v11pm5各语言 SDK 示例(java版)地址:https://help.aliyun.com/document_detail/32008.html?spm=5176.208357.J_1153451820.2.4f86390frRaWO3原创 2020-09-29 19:24:47 · 352 阅读 · 0 评论 -
阿里云OSS使用详解(java版本)
近几年,云图片服务器五花八门,越来越多,有腾讯云,阿里云,又拍云,华为云等等,但是使用了这么多年,我还是感觉阿里云图片服务器oss比较稳定,访问速度也比较快,因此我在这里手把手教给你如何使用阿里云oss服务;一、使用之前,我们还是先来搞清楚阿里云oss使用的原理吧其实调用方式也就两种,一种是直接客户端调用阿里云提供的服务器进行上传,一种是通过服务器间接上传,我们来分析以下优缺点吧:上传方式 优点 缺点 直接调用 上传速度快,能直接快速上传到阿里云服务器,不需要中转转载 2020-09-29 19:19:02 · 1568 阅读 · 1 评论 -
Java实现简单上传图片到阿里云对象存储OSS
阿里云对象存储服务(Object Storage Service,简称 OSS)提供基于网络的数据存取服务。使用 OSS,可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。具有:1、易用性:简单易用,便于管理,深度集成数据处理服务;2、高可靠:多重冗余备份,服务设计可用性不低于99.99%;3、强安全:多层次安全防护,支持跨区域复制、异地容灾机制;4、低成本:总体TCO更低,生命周期管理进一步降低成本等特点。在实现之前首先要购买阿里云对象存储OSS资源包并转载 2020-09-29 19:12:29 · 833 阅读 · 0 评论