原文持续更新完善:https://www.cnblogs.com/uncleyong/p/15475614.html 前言:当前的热门主流技术是哪些?测开为啥那么火?90%以上的测试对测开认识不准确 docker.k8s.skywalking.efk(elk,elfk).prometheus.全链路.微服务.性能调优等. 正确认识测开:为啥部分高薪测开也要求自动化.性能.安全?https://www.cnblogs.com/uncleyong/p/11995605.html 本实战项目用到的技术…
说明: 本文是基于虚拟机环境配置设计的 性能测试需求 总tps≥100 每个业务的rt<500ms 持续稳定跑50万业务量 单场景 目的:找到单场景的性能问题,为容量场景提供参考,如果低于容量场景中此接口的目标tps,那肯定要先优化 核心业务接口:查询礼品.兑换礼品.查询订单 数据库存量数据设计 礼品:10000 库存:10000 订单:100000 参数化数据设计 查询礼品:10000 查询订单:10000 开启慢查询及设置阈值 vim my.cnf 开启慢查询 slow_query_log=…
说明: 本文是基于虚拟机演示的,资源有限 skywalking中拓扑图 kubectl get po -A -owide 测试执行:单场景 查询礼品 jmeter -n -t gift.jmx -l res.jtl -e -o res/ 通过下图可以看到,tps>50 压测结果 兑换礼品 见下方性能问题2 查询订单 见下方性能问题1 测试执行:混合场景 12线程 测试执行:稳定性场景 说明:下图大概00:25后tps上升,是因为我把服务器上无关的服务停了 性能问题1:查询订单慢sql 压测执行…
使用kind构建一个单层架构Node/Express网络应用程序 Kubernetes实战-从零开始搭建微服务 1 前言 准备写一个Kubernetes实战系列教程,毕竟cnblogs作为国内最早的技术博客现在都已经开始迁移到Kubernetes了,此处要有掌声给博客园.系列会更加偏向于实战,对于理论只在需要时讲解. Docker hub 上我个人觉着有两个做奇葩的镜像image dind, docker in docker kind, kubernetes in docker / k8s in…
1.5 提高可用性-发布多节点的Node/Express网络应用程序 Kubernetes实战 - 从零开始搭建微服务 前言 在上一篇文章中,已经学习了如何简单地开发一个单层网络应用.[Kubernetes实战 - 从零开始搭建微服务 1 - 使用kind构建一个单层架构Node/Express网络应用程序] ,本文将在上一篇基础上,添加额外节点,目的在于提高可用性(high availability). 关于可用性 high availability 在软件产品环境下,如何提高服务稳定性,进而…
1         安装Dapr开发调试环境 1.1         Dapr 完整安装模式不支持开发调试 在上一篇随笔<Blazor+Dapr+K8s微服务之服务调用>中,我们通过为每个微服务运行dapr run -.dotnet run命令,以自宿主的方式在本地开发环境成功运行了服务调用的例子. 但是,这种运行方式是不支持调试的,我们无法在程序中进行断点.这就很不实用了! 搜索一番,找到这么一篇文章:Simple approach to run and debug multiple .NE…
SpringCloud-Learning   源码下载地址:http://download.csdn.net/detail/k21325/9650968     本项目内容为Spring Cloud教程的程序样例. 作者博客:http://blog.didispace.com Spring Cloud系列博文:http://blog.didispace.com/categories/Spring-Cloud/ Spring Cloud中文社区:http://bbs.springcloud.com…
(一)surging 微服务框架使用系列之surging 的准备工作rabbitmq安装   (1)下载erlang: http://www.erlang.org/download/otp_win64_17.3.exe 并安装 (2)下载RabbitMQ: http://www.rabbitmq.com/ 并安装 (3)下载并安装好后找到服务启动选项并打开rabbitmq服务    至此,rabbitqm的服务已经成功启动. (4)开启rabbitmq的管理后台,需要配置开启 进入rabbitm…
(三)surging 微服务框架使用系列之我的第一个服务(审计日志)   前言:前面准备了那么久的准备工作,现在终于可以开始构建我们自己的服务了.这篇博客就让我们一起构建自己的第一个服务---审计日志. 首先我们先创建两个项目,一个控制台的服务启动项目,一个业务的实现项目.(注:控制台项目可以引用业务项目,也可以不引用业务项目.因为surging支持热部署) 在服务启动项目中引用我们所需要的surging组件, 服务配置: 当然,我们之前所描述的rabbitmq的配置:. ok,接下来就是对我们…
寻找丢失的微服务-HAProxy热加载问题的发现与分析 原创: 单既喜 一点大数据技术团队 4月8日 在一点资讯的容器计算平台中,我们通过HAProxy进行Marathon服务发现.本文记录HAProxy服务热加载后某微服务50%概率失效的问题.设计3组对比实验,验证了陈旧配置的HAProxy在Reload时没有退出进而导致微服务丢失,并给出了解决方案. Keywords:HAProxy热加载.Marathon.端口重用 01…
笔记 4.微服务下电商项目基础模块设计     简介:微服务下电商项目基础模块设计 分离几个模块,课程围绕这个基础项目进行学习             小而精的方式学习微服务 1.用户服务             1)用户信息接口             2)登录接口 2.商品服务             1)商品列表             2)商品详情 3.订单服务              1)我的订单             2)下单接口 开始…
这是java高并发系列第28篇文章. 环境:jdk1.8. 本文内容 日志有什么用? 日志存在的痛点? 构建日志系统 日志有什么用? 系统出现故障的时候,可以通过日志信息快速定位问题,修复bug,恢复业务 提取有用数据,做数据分析使用 本文主要讨论通过日志来快速定位并解决问题. 日志存在的痛点 先介绍一下多数公司采用的方式:目前比较流行的是采用springcloud(或者dubbo)做微服务,按照业拆分为多个独立的服务,服务采用集群的方式部署在不同的机器上,当一个请求过来的时候,可能会调用到很多…
0x00 背景 K8S内运行Spring Cloud微服务,根据定制容器架构要求log文件不落地,log全部输出到std管道,由基于docker的filebeat去管道采集,然后发往Kafka或者ES集群. 0x01 多行匹配和yaml文件 在filebeat启动的yaml文件内,指定相应的名称空间并配置java堆栈的多行解析规则,如下yaml文件输出端是kafka,如需要输出到es集群,可更改对应配置 apiVersion: v1 kind: Namespace metadata: name:…
1.1         Dapr环境配置 1.1.1        在开发机安装Docker Desktop并启用Kubernetes 安装过程略,安装好后效果如下:(左下角两个绿色指示Docker和K8s正在运行) 1.1.2        在开发机安装Dapr Cli 安装命令: powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex&…
     前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for desktop中启用就可以了.但是我发现,启用了k8s后,Docker for desktop会消耗大量的系统资源,导致系统变得很慢.据说windows 上的WSL 2 性能不错,这次我尝试在WSL Linux上安装K8s并部署我们的微服务,看看还会不会出现系统资源消耗过大的情况.      关于网络:我用的是…
第1章 初识微服务微服务的入门,我们从传统的单体架构入手,看看在什么样的环境和需求下一步步走到微服务的,然后再具体了解一下什么才是微服务,让大家对微服务的概念有深入的理解.然后我们一起画一个微服务的架构图,再从架构上去分析微服务架构的优势和不足. ...1-1 微服务-导学 试看1-2 软件架构的进化 试看1-3 什么是微服务1-4 画出微服务架构图1-5 微服务架构的优势和不足 第2章 微服务带来的问题及解决方案分析通过传统服务与微服务对比的方式去学习,如果使用微服务架构会遇到什么问题,这些问…
作者 | 元毅 阿里云智能事业群高级开发工程师 在 Istio 中提供了一个 Bookinfo 的示例,用于演示微服务之间的调用,那么如何在 Knative 中部署这个示例呢?本文将会给大家介绍一下在 Knative 中部署 Bookinfo 微服务以及查看调用链追踪信息. 背景 Bookinfo 这个示例应用由 4 个微服务组成. Bookinfo 应用架构图如下: productpage 微服务: 调用 details 微服务和 reviews 微服务来生成页面 details 微服务: 包…
实现一个场景: 订单微服务: POM: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac…
1         状态管理服务器端接口 1.1         添加Dapr.AspNetCore包 在DaprTest1.Server项目中添加Dapr.AspNetCore包,该包实现了ASP.NET Core与Dapr的集成,例如自动依赖注入DaprClient对象,将状态管理功能直接集成到 ASP.NET Core 模型绑定功能中等. 修改DaprTest1.Server项目的Startup.cs文件,将Dapr对象依赖注入到ASP.NET Core. public void Conf…
我们要实现的是:在blazorweb服务中发布一个事件,并传递事件参数,然后在serviceapi1服务中订阅该事件,接收到blazorweb服务中发布的事件和参数. 1         在blazorweb服务中发布一个事件 在DaprTest1.Server项目的WeatherForecastController.cs文件中增加事件发布API: [HttpPost(nameof(PublishTestEvent))] public async Task PublishTestEvent(Te…
前不久参加了深圳的Azure开源者峰会,会上张善友张老师推荐了微软的一个架构网站:.NET Application Architecture 这几天正好工作比较闲,看了下里面关于微服务架构的介绍,非常详尽. 于是顺带翻译了一下,方便后来人和以后回顾. 容器化是软件开发的一种方法,它可以将应用程序或服务,其依赖性及其配置(比如部署时的配置文件)作为容器镜像打包在一起. 容器化应用程序可以作为一个单元进行测试,并作为容器镜像实例部署到宿主操作系统(OS). 就像集装箱可以通过船只,火车或者卡车来运输…
前言:前面准备了那么久的准备工作,现在终于可以开始构建我们自己的服务了.这篇博客就让我们一起构建自己的第一个服务---审计日志. 首先我们先创建两个项目,一个控制台的服务启动项目,一个业务的实现项目.(注:控制台项目可以引用业务项目,也可以不引用业务项目.因为surging支持热部署) 在服务启动项目中引用我们所需要的surging组件, 服务配置: 当然,我们之前所描述的rabbitmq的配置:. ok,接下来就是对我们的服务进行代码编写了,,接口注意,服务的命名后面必须是以"Service&…
从去年开始,前端领域就出现了一个‘微应用’的名词,说的是前端架构的一种设计思路,业内都把它和后端的微服务进行类比,当时忙于公司的项目.没有静下心来好好了解,现在项目结束,再加上最近看的几篇关于前端微服务的文章,(特别讨厌有些文章说的天花乱坠,引用各种高大上的名字,一篇通读下来什么也没有获得)回头一想,我们做的这个架构设计不就是 ‘微服务’吗? 首先说一下前端微服务. 我觉得这是一种架构设计,不是什么新技术,而是多种技术结合的产物,既然是架构设计那么它就得有使用场景,否则那是空谈,而它的使用场景则…
前言 Github开源:github.com/yoyofx/yoyogo 还请多多Star 之前简单介绍了YoyoGo微服务框架的基本内容,接下来了解下框架中的基本概念. 从一个简单Web服务Demo出发 package main import ... func main() { YoyoGo.CreateDefaultBuilder(func(router Router.IRouterBuilder) { router.GET("/info",func (ctx *Context.H…
前言 YoyoGo是一个使用Golang编写的一个简单.轻量.快速.基于依赖注入的微服务框架,目前依然在研发阶段,欢迎Star以及一起参与到框架的研发 GitHub地址:https://github.com/yoyofx/yoyogo 正在为YoyoGo写第一个博客应用,感谢Tassdar的加入,源代码:https://github.com/yoyofxteam/YoyoBlog.git 请先Clone Star,项目会持续更新,~ 本文通过一套最为基本的增删改查,来实例应该如何在最短的时间内最…
题记:Dapr是什么,Dapr包含什么,为什么要用Dapr. Dapr是什么 Dapr(Distributed Application Runtime),是微软Azure内部创新孵化团队的一个开源项目,皆在解决微服务应用开发过程的一些共性问题.以官方文档的说法,Dapr是一个可移植.事件驱动的运行时,让企业开发者更容易利用各种语言和框架构建柔性.无状态和有状态的微服务应用,并运行在云端和边缘. Dapr的核心由Go语言写成,开发团队一开始有计划使用.NET Core/C#来写,但是考虑到社区的接…
题记:上篇介绍了Dapr的环境配置,这次我们来动手尝试一下Dapr应用的开发 Hello World Dapr应用的Hello World其实和其他的Hello World一样简单: 首先用你喜欢的语言和框架创建一个Hello World程序.比如在.NET 5下,就可以简单的这样实现 dotnet new console -o dapr-hello-world 只是运行这个Hello World不是直接启动程序,而是通过Dapr来启动:dapr run --app-id hello-dotne…
题记:这篇开始逐一深入介绍各个构件块,从服务调用开始 原理 所谓服务调用,就是通过这个构件块让你方便的通过HTTP或者gRPC协议同步调用其他服务的方法,这些方法也是通过HTTP或者gRPC来暴露的.而方便的含义在于,你无需担心如下问题: 如何发现其他服务,不用关心调用的链路以及负载均衡 调用过程中如何保证安全性 在遇到瞬态错误或中断的时候如何处理重试 如何记录调用链路的跟踪信息 Dapr本身并没有提供额外的API让你去利用这些特性,上面所有的一切都通过Sidecar模式帮你横切到Dapr边车实…
​ 前言 近来,在想着重构一个新的产品.准备采用微服务的技术解决方案,来搭建基础设施框架.网关,是一个必不可少的组件.那么,网关到底是什么? 其又有什么特点或者特性,成为微服务必不可少的组件呢?今天,我们就来探讨下这个问题.希望通过本文,大家能够明白,为何用. 演变过程 传统的单体技术架构,所有的内容,被打包进一个包内.为了保证,系统的稳定.安全,需要开发一些过滤器.拦截器,来实现对客户端请求的过滤与拦截,以及完成最终请求的转发.如下图所示 ​…
之前有写过对于传统项目的性能测试监控,但是对于目前市场占比已经很低,大部分项目使用k8s,今天讲一下对于k8s如何去监控. 对于k8s的监控我们所有的操作都要在master下进行. 一.部署grafana 作者会提供一个grafana的yaml文件,对于文件进行适配项目的修改即可 1.修改配置文件 spec: containers: - name: grafana #镜像版本号 image: grafana/grafana:7.2.1 ports: - containerPort: 3000 e…