
Web架构
xihuanyuye
企业级Web服务、机器学习
展开
-
arm环境打包lua脚本依赖的cjson库
1、需要在x86、arm两种环境中进行执行,因此该cjson.so需要在两种环境下分别进行编译。在lua-cjson进行编译的时候,需要依赖lua基础环境。将参考《Lua:开源库 lua-cjson 安装及使用》生成的json.so拷贝到系统中,可以看到在5.1版本的lua中会去5.1的位置找该so。但是在arm环境中,lua-jit仅仅在后续版本中提供了简单的支持,这时侯编译lua-cjson需要的依赖都缺失了。原因应该是envoy运行环境中的lua版本较低,不支持函数require。原创 2023-02-02 17:56:21 · 664 阅读 · 0 评论 -
envoy配置http/grpc代理
grpc代理1、reset reason: protocol error所以在envoy配置中clusters要配置以下内容,至少协议对了效果HTTP代理1、filter中的配置Envoy出现Didn‘t find a registered implementation for ‘envoy.filters.http.router‘ with type URL: ‘‘解决办法配置如下时有问题需要增加具体的配置参考Envoy作grpc代理Envoy出现Didn‘t find a regis原创 2022-12-05 16:40:03 · 1342 阅读 · 0 评论 -
Twitter_Snowflake生成算法
package com.tsingj.plugin.seq.impl;import com.google.common.base.Charsets;import com.tsingj.core.lang.Base64;import com.tsingj.core.seq.SeqInfo;import com.tsingj.core.seq.SeqUtil;import com.tsingj.core.util.JsonUtil;import edu.umd.cs.findbugs.annotat原创 2021-06-15 20:50:53 · 97 阅读 · 0 评论 -
常用组建访问速度
内网请求一次grpc请求原创 2021-03-23 10:50:45 · 87 阅读 · 0 评论 -
DevOps与 CI /CD
一、CI/CD缩略词 CI / CD 具有几个不同的含义。CI/CD 中的“CI”始终指持续集成,它属于开发人员的自动化流程。成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。CI/CD 中的“CD”指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。两者都事关管道后续阶段的自动化,但它们有时也会单独使用,用于说明自动化程度。持续交付通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 Gi原创 2020-11-08 17:43:25 · 684 阅读 · 0 评论 -
springboot的autowired空指针
原创 2020-04-29 19:44:10 · 653 阅读 · 0 评论 -
证书及加密基础知识
1、CSR用来向证书颁发机构进行证书申请的文件https://www.cnblogs.com/xuegqcto/p/9116712.html原创 2020-03-17 16:49:33 · 255 阅读 · 0 评论 -
IDEA无法连接docker中的数据库的问题
问题最后无解,或许可以通过抓包发现原因,但是经过两个小时的蛮力测试,最后证明可能当前应用的运行环境有关。毕竟生成环境用的就是简单的‘123456’。问题现象:本地idea起springboot的微服务,以com.alibaba.druid.pool.DruidDataSource连接池连接docker中安装的。datasource: type: com.alibaba.druid....原创 2020-03-05 08:53:58 · 2163 阅读 · 0 评论 -
本地开发服务docker-mysql快速启动
1、redisdocker pull镜像docker pull hub.c.163.com/library/redis:latestdocker run -d --name redis --restart always -p 6379:6379 -v /Users/$USER/softwares/redis/data:/data hub.c.163.com/library/redis --r...原创 2020-02-18 19:47:18 · 698 阅读 · 0 评论 -
Springboot配置swagger的最简洁方法
swagger配置https://blog.youkuaiyun.com/Donatello_Jiang/article/details/82155710https://blog.youkuaiyun.com/miachen520/article/details/95722887xiaoyiminhttps://www.cnblogs.com/xiaoymin/p/8391797.htmlhttp://host...原创 2020-02-18 15:18:10 · 209 阅读 · 0 评论 -
为什么redis 是单线程的?
误区高性能服务器一定是多线程来实现的多线程一定比单线程效率高。通过这个博客,让你更清楚为什么这个观点是错误的。在说这个事前希望大家都能对 CPU 、 内存 、 硬盘的速度都有了解了,可以参考CPU到底比内存跟硬盘快多少。为什么做单线程?redis 核心就是:如果我的数据全都在内存里,单线程的去操作 就是效率最高的,为什么呢,因为多线程的本质就是 CPU 模拟出来多个线程的情况,这种模拟...原创 2019-03-14 21:23:57 · 250 阅读 · 0 评论 -
破译诡异的“符号
一、问题来源最近没事找事,说弄什么系统漏洞扫描审查。都是内网系统,审查个鬼。做了又不会有什么实际对生产效率提高的作用,但是不解决几个问题总感觉心里不踏实。所以就拎出来测试中心的几个所谓的漏洞改一改。但是测试报告中这个内容,给看蒙了。这是什么符号,系统里没有这个东西啊。今天就来破译这个诡异的符号。问题解释其实这些符号是在浏览器显示时,用来转义保证正常显示的源码。只是这报告导出时应该没有完...原创 2019-03-11 14:18:25 · 31570 阅读 · 0 评论 -
架构师基本工具(三)操作系统内存查看工具——free
解释一下Linux上free命令的输出。下面是free的运行结果,一共有4行。为了方便说明,加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:FO[2][1] = 24677460FO[3][2] = 10321516free的输出一共有四行,第四行为交换区的信息,分别是交换的总量(total),使用量(used)和有多少空闲的交换区(free),...原创 2019-01-12 22:09:22 · 368 阅读 · 0 评论 -
Spring极简学习(三)实例化Bean的方法有两种
其实实例化一个Bean并没有那么复杂,不就是将new Bean()的过程放到Spring这里来实现了吗?其实的确如此,当然了,之前的设计模式中的实例化Bean的方式Spring也得支持支持吧。1、最直观实例化(反射模式)xml配置<bean id="car1" class="com.*.Car"> <property name="id&原创 2018-12-19 22:01:54 · 211 阅读 · 0 评论 -
Spring极简学习(二)给Bean加些小动作
上一篇文章已经讲过了Spring是如何把自己注入到Web应用中的,并且通过配置文件的读取开始Bean的实例化之路。1、实例化后、销毁前当然除了对常规的Bean的实例化之外,往往会产生一些特别的要求,例如在bean实例化后要做一个什么动作,比如起一个线程服务。或者在bean销毁之前进行一个记录日志的动作。这些固定的操作Spring都进行了标准化的配置封装。2、xml文件配置个人认为xml文件...原创 2018-12-19 21:16:56 · 248 阅读 · 0 评论 -
Spring极简学习(一)加载第一步——ContextLoaderListener
Spring的功能已经算是了解了,也就是帮助实例化对象,并且进行一些面向切面的功能插入。先不论上述两者的具体实现技术,先看看在Web框架层面是如何将Spring整个引入进来的。1、web.xmlWeb应用启动后,最先解析的的就是web.xml,因此Spring加载的密码就藏在这里。先看一个简单的web.xml样例。其中配置项目就两项:listener、context-param,就是...原创 2018-12-19 20:57:14 · 595 阅读 · 0 评论 -
架构师基本工具(二)网卡参数查看设置工具——ethtool
一、ethtool是什么ethtool - Display or change ethernet card settings(ethtool 是用来显示和更改网卡设置的工具);这个工具比较复杂,功能也特别多。不够对于开发或者架构师来说,用它来查看网卡运行情况的细节就足够了。例如我就是用来看了看网卡到底是多宽。命令: ethtool etho二、安装官网下载http://ethtool....原创 2018-12-14 21:47:17 · 1193 阅读 · 0 评论 -
架构师基本工具(一) 局域网带宽测试工具——iperf
一、iperf是什么iperf是一个基于Client/Server的网络性能测试工具,可以测试TCP、UDP和SCTP带宽质量,能够提供网络吞吐率信息,以及震动、丢包率,最大段和最大传输单元大小等统计信息,帮助我们测试网络性能,定位网络瓶颈。其中抖动和丢包率适应于UDP测试,二带宽测试适应于TCP和UDP。iperf的好处是纯粹发包和接收,防止硬盘拖后腿,影响测试结果。对于时延,iperf无能...原创 2018-12-14 21:28:56 · 8745 阅读 · 0 评论 -
一篇文章说清GIT的“分布式”是什么意思?
1、Git简介Git简单的来说,是一种分布式的版本管理工具,其具有以下优点:1、速度快2、简单的设计3、对非线性开发模式的强力支持(可以同时允许几千个分支同时进行开发和切换)4、完全分布式(防止集中式版本管理工具所出现的单点故障问题)Linus花了两个星期用C语言写出了一套Git的原型代码,在Linux数千开发者的努力与完善之下,形成了目前的Git这一套版本管理工具。2、如何分布式...原创 2018-12-09 22:19:00 · 4335 阅读 · 0 评论 -
Java编程MD5计算中MessageDigest类产生的并发问题
需求每次请求对请求体进行MD5值计算,服务端做验证并响应。对请求报文的完整性进行校验。问题开发:因为这些常用的工具类之前都写好了,用的时候没有多想就直接Copy过来了,请求是并发的,刚刚开始的时候,并发请求较少(1-2)个,没有出现什么问题,后来请求3-4个同时发的时候,服务端偶尔抛出MD5值验证错误的信息,后来翻看了MD5工具类之后才发现,原来这个类写的方式并不支持并发,MessageDi...原创 2018-12-03 21:53:55 · 1619 阅读 · 0 评论 -
Nginx、apache虚拟主机到底是指什么
虚拟主机的概念如果你有两个不同域名的网站,但是你只有一台服务器,这时候怎么办?其实利用nginx或者apache都可以帮你用一台机器来模拟多台机器作为服务器提供服务。虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,每一个虚拟主机都可以有独立的域名和独立的目录nginx虚拟主机的配置nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置...原创 2018-11-10 19:07:39 · 1760 阅读 · 0 评论 -
怎样理解阻塞非阻塞与同步异步的区别?
一、同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异...原创 2018-10-30 15:03:30 · 268 阅读 · 0 评论 -
什么时候会用到netty开发服务器?
定义Netty是异步的 事件驱动的基于NIO实现的开源框架,用以快速轻松的实现高性能、高可靠性的网络客户端和服务器端最基础的通信组件,通俗的讲:Netty是Jboss开发做的JAR包,很好的封装了Socket,处理网络通信的一个开源通信框架。一、Netty的特性1)设计统一的API,适用于不同的协议(阻塞和非阻塞)基于灵活、可扩展的事件驱动模型高度可定制的线程模型可靠的无连接数据So...原创 2018-10-26 14:00:31 · 2202 阅读 · 0 评论 -
Zookeeper开发基础
参考zookeeper知识点原创 2018-10-26 13:56:32 · 166 阅读 · 0 评论 -
zookeeper集群为何是奇数
1、zookeeper集群架构图在zookeeper集群中,会有三种角色,leader、 follower、 observer分别对应着总统、议员、观察者。半数以上投票通过:可以这样理解。客户端的增删改操作无论访问到了哪台zookeeper服务器,最终都会被转发给leader服务器,再由leader服务器分给zookeeper集群中所有follower服务器去投票(投票指的是在内存中做增删改...原创 2018-10-26 10:47:45 · 693 阅读 · 0 评论 -
一致性Hash算法
1、算法目的对于分布式系统,如果在增加或者减少机器时,使得存储或者缓存的数据迁移和变动最小。而不是整体需要更改,一致性hash算法就是解决了这个问题。逻辑上非常巧妙的算法。2、具体参考一致性Hash算法...原创 2018-10-20 09:17:38 · 157 阅读 · 0 评论 -
CPU、网络、磁盘瓶颈检测
一、机器运行情况工具或命令 top 实时产看总体的机器运行情况 nmon工具 可以查看每个CPU内核使用率、每个磁盘文件的IO,相对于top更加详细 free -m 查看内存使用情况二、机器性能估算测试 1、网络 通过FTP上传文件方式来估算; 2、磁盘IO 利用命令测试 sync;/usr/bin/time -p bash -c “(dd if=/dev/zero of...原创 2018-08-16 13:52:56 · 802 阅读 · 0 评论 -
架构师Web测试常用工具
1、ab测试工具 ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具。apache自带ab工具,可以测试。 apache、IIs、tomcat、nginx等服务器; 但是ab没有Jmeter、Loadrunner那样有各种场景设计、各种图形报告和监控,只需一个命令即可,有输出描述,可以简单的进行一些压力测试。 2、...原创 2018-08-04 16:17:53 · 510 阅读 · 0 评论 -
两地三中心及双活数据中心具体示例说明
两地三中心 两地三中心的有几种实现形式,下图是一种典型案例。 在这一案例中,正常情况下,业务运行在主机房的设备之上。主存储与辅存储存在单向同步关系,即主储存的所有数据变更都会实时同步复制①到次存储上,从而保证两个存储数据完全一致。同时,为防止极端灾害发生,主存储的数据变更也会通过异步复制②的方式同步到远程容灾机房的存储设备上。当主中心因为各种原因中断服务时,可以通过手工命令或者软件自动...原创 2018-08-01 20:50:07 · 18014 阅读 · 0 评论 -
阿里巴巴高可用架构的演进史
阿里的异地多活阿里在整个高可用上也经历过了一段时间,主要是做了三个步骤。第一个是做了同城的双活,第二个做了异地只读及冷备,第三个是做了异地多活,经历了三代体系的演进才走到了今天的异地多活。对于阿里的交易以及支付来讲,我们做异地多活最重要的目的除了灾备之外,更重要的点是追求持续可用,整个支付交易的体量对于用户来讲是持续可用。业界比较主流的灾备我们可以看一下业界比较主流的灾备是怎么做的...原创 2018-08-01 20:29:43 · 1360 阅读 · 0 评论 -
双活数据中心架构分析及优缺点
一、什么是双活数据中心?首先我们要知道双活就是Active-Active,故名思义就是两边都是活动在线提供服务的,是相对于传统的主备模式Active-Standby模式的。一个真正的双活方案是应该涵盖基础设施、中间件、应用程序各个层次的。双数据中心同时对外提供业务生产服务的双活模式,两个数据中心是对等的、不分主从、并可同时部署业务,可极大的提高资源的利用率和系统的工作效率、性能,让客户从容...原创 2018-08-01 19:53:26 · 25466 阅读 · 0 评论