技术文章

SpringBoot整合Zookeeper和Dubbo

北慕城南 提交于 2021-02-18 21:31:18
一、Dubbo 1、 Dubbo定义 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方 式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦 合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要 么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象 出服务提供方(Provider)和服务消费方(Consumer)两个角色。 Dubbo就是资源调度和治理中心的管理工具。 2、Dubbo架构 节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中心。 Container: 服务运行容器。 调用关系说明: 0. 服务容器负责启动,加载,运行服务提供者。 1. 服务提供者在启动时,向注册中心注册自己提供的服务。 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。 4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。 5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

该死的anyuid

谁都会走 提交于 2021-02-18 21:30:58
相信接触过paas的用户都遇到过 部署镜像报错没有权限问题。就是在paas环境中不建议使用root用户,但是如果一定要使用root则可以修改权限设置anyuid 来解决。 #给容器所在的项目赋权 [root@openshift-master tmp]# oc adm policy add-scc-to-user anyuid system:serviceaccount:openshift-infra:default [root@openshift-master tmp]# oc adm policy add-scc-to-user privileged system:serviceaccount:openshift-infra:default #备用,去权命令 [root@openshift-master tmp]# oc adm policy remove-scc-from-user anyuid system:serviceaccount:openshift-infra:default [root@openshift-master tmp]# oc adm policy remove-scc-from-user privileged system:serviceaccount:openshift-infra:default 来源: oschina 链接: https://my

八个技巧,提高Web前端性能

微笑、不失礼 提交于 2021-02-18 21:30:38
往期精选 ● 架构师高并发高性能分布式教程 (4000G) ● 39阶段精品云计算大数据实战视频教程 ● 互联网技术干货视频教程大全【菜单为准】 ● 2017年8月最新Intellij IDEA全套视频教程 ● 程序员如何制作高质量的简历【视频+简历】 ● 两套大型电商实战项目 ● 200本经典编程相关书籍下载 更多精彩查看历史记录......... 1. 优化 CSS 性能 CSS,即级联样式表,能从 HTML 描述的内容生成专业而又整洁的文件。很多 CSS 需要通过 HTTP 请求来引入(除非使用内联 CSS),所以你要努力去除累赘的 CSS 文件,但要注意保留其重要特征。 如果你的 Banner、插件和布局样式是使用 CSS 保存在不同的文件内,那么,访问者的浏览器每次访问都会加载很多文件。虽然现在 HTTP/2 的存在,减少了这种问题的发生,但是在外部资源加载的情况下,仍会花费较长时间。要了解如何减少 HTTP 请求以大幅度缩减加载时间,请阅读WordPress 性能。 此外,不少网站管理员在网页中错误的使用 @import 指令 来引入外部样式表。这是一个过时的方法,它会阻止浏览并行下载。link 标签才是最好的选择,它也能提高网站的前端性能。多说一句,通过 link 标签请求加载的外部样式表不会阻止并行下载。 2.减少外部HTTP请求 在很多情况下

Odoo12之创建Todo应用

北慕城南 提交于 2021-02-18 21:30:23
声明: 本教程基于 Ruter 老师的 [Odoo基础教程系列] ,Ruter老师教程的链接地址为: Odoo基础教程系列 。 本章内容总结 1.项目前置准备 2.创建模块,模块的简单配置 3.model模型及模块安装 4.创建菜单视图 5.添加应用到应用列表 6.创建任务列表视图。 项目初始准备 如果你的odoo环境还没有配合好的话,请参考我的另一篇文章: win10中odoo12环境配置 在配好环境之后,如果要启动项目,需要添加如下配置: 1.将odoo-bin文件放在odoo源码下,如果没有odoo-bin文件,可以将odoo源码下的一个odoo.py文件复制并更名为odoo-bin; 2.在 odoo源码/setup/odoo.conf中添加odoo配置,内容如下: 3.pycharm下项目启动配置,在绿色倒三角形旁边 4.在odoo源码的目录下创建一个myaddons文件夹,用来存放自己编写的odoo应用/模块,这里我的odoo源码是从gitee上下载的odoo12源码; 为了让odoo可以检索到我们自定义myaddons下的模块,我们要将myaddons的路径加入到模块检索路径下 在 odoo.conf 文件下添加如下配置: addons_path=E:\YifChanSoft\Odoo\OdooSave\odoo_gitee\odoo\addons,E:

流量监控脚本监控网卡

心不动则不痛 提交于 2021-02-18 21:27:06
1.编写脚本 vi jksd.sh #!/bin/bash ethn=$1 while true do RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') sleep 1 RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') clear echo -e "\t RX `date +%k:%M:%S` TX" RX=$((${RX_next}-${RX_pre})) TX=$((${TX_next}-${TX_pre})) if [[ $RX -lt 1024 ]];then RX="${RX}B/s" elif [[ $RX -gt 1048576 ]];then RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}') else RX=$

版本控制管理工具git的常见命令

断了今生、忘了曾经 提交于 2021-02-18 21:22:09
git提供了查看、添加、提交、删除、找回,重置修改文件的功能 一、常见的命令 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id git co -- <file> # 抛弃工作区修改 git co . # 抛弃工作区修改 git add <file> # 将工作文件修改提交到本地暂存区 git add . # 将所有修改过的工作文件提交暂存区 git rm <file> # 从版本库中删除文件 git rm <file> --cached # 从版本库中删除文件,但不删除文件 git reset <file> # 从暂存区恢复到工作文件 git reset -- . # 从暂存区恢复到工作文件 git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改 git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments" git ci --amend # 修改最后一次提交记录 git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象 git revert HEAD # 恢复最后一次提交的状态 二

基于注解的IoC容器

最后都变了- 提交于 2021-02-18 21:21:52
BeanFactory SpringBean的创建是典型的工厂模式,这一系列的Bean工厂,即IoC容器为开发者管理了Bean之间的依赖关系。BeanFactory作为最顶层的一个接口类,定义了IoC容器的基本规范。 在BeanFactory里只对IoC容器的基本行为做了定义,不关心Bean是如何定义及怎样加载的。正如我们只关心能从工厂中获取到什么产品,不关心工厂是怎么生产这些产品的 public interface BeanFactory { //对FactoryBean的转义定义,如果使用Bean的名字检索FactoryBean得到的对象是工厂生成的对象,如果需要得到工厂本身,需要转义 String FACTORY_BEAN_PREFIX = "&"; //根据Bean的名字获取IoC中Bean的实例 Object getBean(String var1) throws BeansException; //根据Bean的名字和Class类型获取Bean的实例,增强了类型安全验证机制 <T> T getBean(String var1, Class<T> var2) throws BeansException; Object getBean(String var1, Object... var2) throws BeansException; <T> T getBean

干货——IT项目管理之软件测试

蓝咒 提交于 2021-02-18 21:21:30
1. 定义 软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。对于软件质量而言,QC、QA、QM是三个常见且易混淆的概念。 a.QC: Quality Control(质量控制) 测试人员负责,通过验证的方法保证质量达到要求 b.QA: Quality Assurance(质量保证) 过程保证人员负责,通过过程的方法保证质量达到要求 c.QM: Quality Management(质量管理) 质量管理人员负责,一般为负责质量的管理者,通过制定过程、协调资源等一系列的手段为QA、QC工作创造良好的环境和条件 2.下图可以更清晰的解释QC、QA和QM三者的区别: 从QC到QA再到QM是一个循序渐进的变革过程,体现了质量管理理论的发展脉络。 在日常工作当中,我们最需要厘清的是QA和软件测试的关系。QA是质量保证,而软件测试是质量保证的一种手段。QA不仅包括软件测试,还包括流程和产品方面的规范化管理措施等。大部分公司QA等价于软件测试,这种理念其实还停留在QC阶段,是针对编码结果的检验,忽略了需求分析和系统设计阶段的质量验证。 3. 测试模型 随着软件测试理论和技术的发展,测试人员通过大量实践,总结出了若干测试模型,如常见的V模型和W模型

用Python分析幸福指数

天大地大妈咪最大 提交于 2021-02-18 21:00:47
作者:huny https://www.cnblogs.com/huny/p/14146719.html 世界上最幸福的国家有哪些?个人幸福和哪些指标相关?你幸福吗?如果不知道,那就进来看看这篇关于幸福的数据分析。 1 前言 民意测验机构盖洛普从2012年起,每年都会在联合国计划下发布《世界幸福指数报告》,报告会综合两年内150多个国家的国民对其所处社会、城市和自然环境等因素进行评价后,再根据他们所感知的幸福程度对国家进行排名。 《世界幸福指数报告》的编撰主要依赖于对150多个国家的1000多人提出一个简单的主观性问题:“如果有一个从0分到10分的阶梯,顶层的10分代表你可能得到的最佳生活,底层的0分代表你可能得到的最差生活。你觉得你现在在哪一层?” 最近看到的一个项目,非常的有意思。接下来我将用python带你来分析一下世界各国的幸福指数排名,以及和幸福有关系的因素。 2 数据解释 3 数据准备 pip install -r requirement .txt 4 编码 import numpy as np import pandas as pd import os,sys import matplotlib.pyplot as plt import seaborn as sns import plotly as py import plotly.graph_objs as go

介绍一款 API 敏捷开发工具

左心房为你撑大大i 提交于 2021-02-18 21:00:34
点击上方 Java后端 , 选择 设为星标 优质文章,及时送达 初衷 用尽可能简单的方式,完成尽可能多的需求。通过约定的方式 实现统一的标准。告别加班,拒绝重复劳动,远离搬砖 特性 用于快速开发API接口。不再定义 Controller , Service , Dao , Mybatis , xml , Entity , VO 等对象和方法. 可视化界面,将入参自动封装到可执行的脚本上,支持所有关系性数据库SQL执行语句,非关系型 MONGODB 查询语句.欢迎扩展 完全基于springboot2.x 作为springboot项目的stater方式集成,无侵入性,新老项目都能快速集成 只需编写一行代码即可完成大部分的业务需求开发,使用难度级别(测试 or 运维)也可参与开发 在线动态编译,无需重启,即时生效,多数据源操作 版本控制,历史记录比对,回滚等功能 远程一键发布到线上环境 线上POSTMAN调试,保存POSTMAN信息或三方文档的自动生成,历史调用记录存储,回塑 代码提示,SQL提示,语法提示 用户管理控制,安全性控制,以及历史行为记录 经过多次项目验证,传统业务型开发,服务端效率能够提升3-5倍,前后端联调提升效率1倍,测试效率2倍提升 传统开发步骤: 增加一张表 创建实体对象,映射这张表 创建API入参VO 创建API出参VO 创建Controller