带你入门consul

consul consul用于微服务下的服务治理,主要特点有:服务发现、服务配置、健康检查、键值存储、安全服务通信、多数据中心等。 什么叫服务治理发现?起初我们的服务比较单一,各服务之间通过接口就能访问。后面服务越来越复杂出现了分布式,为了不引起单点问题,必然是多服务部署,如果还用原来的方式直接连接,那么在某个服务挂掉或者修改了信息,就会导致连接失败。如果连接端能够不去关心具体的服务配置,他只要连接到那个服务,后续的工作由其它服务保证,包括负载均衡、健康检查等,保证总有可用的连接那就行了,consul就是做这个的,当然,它的功能远不止这些,这里只是以服务发现为例。 与它同类的东西,还有Eureka、zooKeeper、etcd等也能做这些事,说不上谁好谁坏,看场景挑合适的吧,不过Eureka现在已经闭源了,这个还是建议不要去用这个了。 consul下载 consule的安装超级简单,去官方下载地址Download ,找到自已对应系统的压缩包,解压后里面就一个文件consul, 将这个文件放到你的PATH中,就能直接用了。 验证下安装成功没有, 看到下面的提示就行了。 [crayon-6 […]

装饰器模式

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。 介绍 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。 何时使用:在不想增加很多子类的情况下扩展类。 如何解决:将具体功能职责划分,同时继承装饰者模式。 关键代码: 1、Component 类充当抽象角色,不应该具体实现。 2、修饰类引用和继承 Component 类,具体扩展类重写父类方法。 应用实例: 1、孙悟空有 72 变,当他变成"庙宇"后,他的根本还是一只猴子,但是他又有了庙宇的功能。 2、不论一幅画有没有画框都可以挂在墙上,但是通 […]

云空调,来自 GitHub 的冷气——GitHub 热点速览 v.21.20

作者:HelloGitHub-小鱼干 万物皆可上云,air-conditioner 是上周火爆小鱼干朋友圈和公众号信息流的云空调项目。第一眼的时候,你会觉得和这个云空调还挺别致的,第二眼,si~~感到了一丝丝的“冷”,为项目作者的脑洞打了个冷颤。此外,Lima 也有点“冷”,它是一个 macOS Linux 子系统,简单来说是一个 Linux 虚拟机…真的有点“冷”幽默在里面。 以下内容摘录自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 热帖(简称 HN 热帖),选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发布时间不超过 14 day 的项目会标注 New,无该标志则说明项目 release 超过半月。由于本文篇幅有限,还有部分项目未能在本文展示,望周知 🌝 本文目录 本周特推 1.1 云空调:air-conditioner 1.2 真·手把手教你刷题:leetcode-master GitHub Trending 周榜 2.1 远程桌面客户端:rustdesk 2.2 视频服务:SRS 2.3 文件同步:s […]

127.0.0.1和0.0.0.0地址的区别!

1. 问题引入 之前在使用tomcat的时候,启动tomcat默认都会绑定到127.0.0.1这个地址,最近在使用hexo写博客的时候发现通过 hexo server命令启动服务的时候绑定的ip地址是0.0.0.0。那么这两个IP地址到底有什么不同呢? 在讲解两个地址的不同之前,我们先回顾一下IP地址的基础知识。 2. IP地址分类 2.1 IP地址表示 IP地址由两个部分组成,net-id和host-id,即网络号和主机号。 net-id:表示ip地址所在的网络号。 host-id:表示ip地址所在网络中的某个主机号码。 即:

2.2 IP地址分类 IP地址一共分为5类,即A~E,它们分类的依据是其net-id所占的字节长度以及网络号前几位。 A类地址:网络号占1个字节。 网络号的第一位固定为0。 B类地址: 网络号占2个字节。 网络号的前两位固定为10。 C类地址: 网络号占3个字节。 网络号的前三位固定位110。 D类地址: 前四位是1110,用于多播(multicast),即一对多通信。 E类地址: 前四位是11 […]

我常用的IDEA插件大公开,个个是精品!

总结了平时工作中常用的12款IDEA插件,后端和前端的都有了,附上我的使用技巧,看完之后开发效率杠杠的! Lombok Lombok为Java项目提供了非常有趣的附加功能,使用它的注解可以有效的地解决那些繁琐又重复的代码,例如 Setter、Getter、toString、equals、hashCode 以及非空判断等。 举个例子,我们给一个类添加@Getter和@Setter注解:

Lombok就会为我们自动生成所有属性的Getter和Setter方法。 Free MyBatis Plugin MyBatis扩展插件,可以在Mapper接口的方法和xml实现之间自由跳转,也可以用来一键生成某些xml实现。 我们可以通过Mapper接口中方法左侧的箭头直接跳转到对应的xml实现中去; 也可以从xml中Statement左侧的箭头直接跳转到对应的Mapper接口方法中去; 还可以通过Alt+Enter键组合直接生成新方法的xml实现,使用起来是不是很方便! MyBatis Log Plugin 有时候我们需要运行过程中产生 […]

再见 Jenkins !几行脚本搞定自动化部署,这款神器有点厉害!

摘要 在开发或生产环境中,我们经常会搞一套自动化部署方案(俗称一键部署)。比较流行的一种就是Gitlab+Jenkins实现方案,不过这种方案占用内存比较大,没有个8G内存,很难流畅运行,而且部署起来也不快。最近发现一款神器Drone,轻量级CI/DI工具,结合Gogs使用内存占用不到1G,几行脚本就能实现自动化部署,推荐给大家! Drone简介 Drone是一款基于容器技术的持续集成工具,使用简单的YAML配置文件即可完成复杂的自动化构建、测试、部署任务,在Github上已经有22K+Star。 Gogs安装 我们将使用轻量级的Gogs来搭建Git仓库,这里只是简单说下安装步骤,具体使用可以参考《Github标星34K+Star,这款开源项目助你秒建Git服务!》。 首先需要下载Gogs的Docker镜像;

下载完成后在Docker容器中运行Gogs;

Gogs运行成功后,访问Web页面地址并注册账号:http://192.168.5.78:10080 […]

github测试地址

 

nps

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。   https://github.com/ehang-io/nps https://ehang-io.github.io/nps/#/

微信小程序 使用webview 缓存解决办法

场景: 1.内嵌使用的是 vue + webpack 打包的单页面 2.更新内容后,webview里面的内容无法更新, 解决办法 1.在url后面加时间戳, 这个在苹果可以实时解决缓存,安卓有些机子不行 2.在安卓机子不行的时候,需要在webpack打包的时候加上 hash配置,不懂hash配置的,可以百度一下, 并且在index.html 里面meta标签加上http-equiv=“cache-control” content=“no-cache” 3.以上能解决新的打包项目在webview 缓存问题, 4.因为原先已经有缓存,进不到新打包的项目里面,走不到新的代码,所有还是会存在缓存问题,只需微信打开http://debugtbs.qq.com,然后根据里面提示,进入页面,里面有一个清除本地缓存选项,清除后,下次进去就可以了。 5.完美解决webview缓存问题 ———————————————— 版权声明:本文为CSDN博主「qq_39260927」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.ne […]

微信小程序webview的缓存问题

前言 小程序webview的页面缓存会影响开发中的调试和生产中的使用 解决 1.页面缓存由浏览器缓存引起,那么可以通过设置来修改浏览器缓存。 可以通过nginx设置cache-control 来关闭浏览器缓存 2.由于是单页面应用,所以只需要对index.html设置即可。 对index.html中的资源地址,也会存在缓存,可以通过webpack构建时加入hash值解决。 作者:依然还是或者其他 链接:https://www.jianshu.com/p/e0363ff16b34 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

端到端的DevOps实践

商业创新——商业画布九宫格 * 客户细分 谁是你的用户?你的用户有什么特点? * 价值主张 你可以为你的用户提供什么样的产品和服务? * 渠道通路 你通过什么渠道与你的客户接触? * 客户关系 你与你的客户将建立一种什么样的关系? * 收入来源 这套商业模式可以有哪些收入来源? * 核心资源 你已经具有或者需要掌握怎样的核心资源? * 关键活动 你需要开展哪些核心活动? * 重要伙伴 你需要有哪些重要的合作伙伴? * 成本结构 这套商业模式在哪些地方花钱?成本结构是怎样的? 商业创新——精益画布 * 问题 最需要解决的三个问题 * 解决方案 产品最重要的三个功能 * 关键指标 应该考核哪些东西 * 独特卖点 用一句话简明扼要但引人注目的话阐述为什么你的产品与众不同,值得购买 * 门槛优势 无法被对手轻易复制或者买去的竞争优势 * 渠道 如何找到客户 * 客户群体分类 目标客户 * 成本分析 争取客户所需花费 销售产品所需花费 网站架设费用 人力资源费用等 * 收入分析 盈利模式 客户终身价值 收入 毛利 产品设计 * 管理账户 * 浏览 * 购买 * 支付 * 配送 * 退货 敏捷开发 […]

如何:启用非托管代码调试

提示 Visual Studio 学习版(如 Visual C# 速成版)不支持调试非托管代码, 只有完整的 Visual Studio 产品才支持此操作。 位于**“项目设计器”的“调试”页上的“非托管代码调试”**属性确定是否支持本机代码调试。 如果要调用 COM 对象,或启动调用您的项目的、以本机代码编写的自定义程序,并且需要调试本机代码,请选定此选项。 启用对非托管代码的调试 在**“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”**。 单击**“调试”**选项卡。 选中**“启用非托管代码调试”**复选框。 禁用对非托管代码的调试 在**“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”**。 单击**“调试”**选项卡。 单击以清除**“启用非托管代码调试”**复选框。   from:https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/tdw0c6sf(v=vs.100)