Play With Docker 直接打开 https://labs.ply-with-docker.com/ 即可访问 Play With Docker 平台. 注册一个 DockerHub 账号便可以访问这个站点,轻松地获得一台 8 核 4G 的公网服务器. 接下来我们就来了解一下如何使用这台服务器进行一些 Docker 的操作. 部署 Nginx 本示例,我们部署一个 nginx ,并且通过将服务公开在一个公网地址上. 登录并创建实例 这一步非常简单,不多说明,成功创建完成之后便可以看到如…
小孩子才做选择,成年人全都要.那么我们现在就来看看如何获得一台免费的 8 核 4G 公网 Docker 实验平台服务器. Play With Docker 直接打开 https://labs.play-with-docker.com/ 即可访问 Play With Docker 平台.注册一个 DockerHub 账号便可以访问这个站点,轻松地获得一台 8 核 4G 的公网服务器.接下来我们就来了解一下如何使用这台服务器进行一些 Docker 的操作. 部署 Nginx 本示例,我们部署一个 n…
# rpm -qf /usr/bin/wget wget-.el6_6..x86_64 rpm -e --nodeps wget 有无下列文件: cat /etc/rc.d/init.d/selinux #!/bin/bash /usr/bin/bsd-port/getty # cat /etc/rc.d/init.d/DbSecuritySpt #!/bin/bash /data1/apps/merchant-wap-tomcat/6sz ]# ls /usr/bin/bsd-port/ co…
接上一篇 Newbe.Claptrap 框架入门,第二步 —— 简单业务,清空购物车 ,我们继续要了解一下如何使用 Newbe.Claptrap 框架开发业务.通过本篇阅读,您便可以开始学会添加一个全新的 Claptrap. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 开篇摘要 本篇,我通过实现 “管理库存” 的需求来了解一下如何在已有的项目样例中定义一个 Claptrap. 结合前一篇的基本步骤…
接上一篇 Newbe.Claptrap 框架入门,第三步 —— 定义 Claptrap,管理商品库存 ,我们继续要了解一下如何使用 Newbe.Claptrap 框架开发业务.通过本篇阅读,您便可以开始学会在 Claptrap 框架中使用 Minion 进行异步的业务处理. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 开篇摘要 本篇,我通过实现 “商品下单” 的需求来了解一下如何在已有的项目样例中…
最近在为 Newbe.Claptrap 做性能升级,因此将过程中使用到的 dotTrace 软件的基础用法介绍给各位开发者. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 开篇摘要 dotTrace 是 Jetbrains 公司为 .net 应用提供的一款 profile 软件.有助于对于软件中的耗时函数和内存问题进行诊断分析. 本篇,我们将使用 Jetbrains 公司的 dotTrace 软件对…
最近正巧在进行 Newbe.Claptrap 新版本的开发,其中使用到了 Tye 来辅助 k8s 应用的开发.该系列我们就来简单了解一下其用法. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 安装 Tye 首先,确保已经正确安装了 netcore 2.1 或以上版本的 dotnet SDK. Tye 目前还处于开发阶段,因此,目前只能安装预览版本进行使用.通过以下链接可以搜索到当前最新的版本,并复制…
续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们来了解一下如何在 Tye 中使用服务发现. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 服务发现 - 微服务开发不可缺少的部件 服务发现,就是新注册的这个服务模块能够及时的被其他调用者发现.不管是服务新增和服务删减都能实现自动发现.<深入了解服务注册与发现> https://zhuanlan.zhihu.com/p/161277955…
续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们来了解一下如何在 Tye 中如何对数据库进行链接. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 中间件链接 绝大多数服务都需要用到外部中间件来支持应用程序的正常运行,通常来说,就包含有数据库.缓存中间件.消息队列和文件系统等等. 因此,在开发过程中需要在应用程序中管理对这些中间件的链接字符串. Tye 提供了一种方式以便更加容易的管理这…
续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们来了解一下如何在 Tye 中如何进行日志的统一管理. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 必不可少的日志管理 对应用进行日志记录和分析是诊断排查线上问题的重要手段.而简单基于控制台或者文件的直接记录既不利于开发者直接读取也不利于大规模分析. 因此,开发者往往会选择一些诸如 Exceptionless 或者 ELK 之类的日志管理…
续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们来了解一下如何在 Tye 中实现对分布式链路追踪. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 我是谁?我在哪儿?我咋了? 分布式系统纷繁复杂,特别以现在微服务架构的出现,使得应用系统中的应用实例变得更加多变难以捉摸. 那么如何在如此繁杂的系统中找到一条业务调用链的上下游关系.性能细节.业务数据等等成为了一项开发者必然要面对的挑战. 使…
续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们将进一步研究 Tye 与分布式应用程序运行时 Dapr 如何碰撞出更精彩的火花. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 巧了,巧了,真是巧了 今天正值 dapr 1.0 发布的日子.如果你暂时还不了解什么是 dapr. 那不如通过以下简短的视频来了解一下什么是 dapr: https://www.bilibili.com/vide…
Newbe.Claptrap 框架依托于一些关键性的基础组件和一些可选的辅助组件.本篇我们来介绍一下如何准备一个开发环境. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 必要组件 这些组件是使用本框架进行开发是必须要安装的组件. Docker Desktop Docker Desktop 是以下所有组件运行的基础.开发可以通过以下链接下载对应操作系统的版本并进行安装: https://www.doc…
接上一篇 Newbe.Claptrap 框架入门,第一步 -- 开发环境准备 ,我们继续了解如何创建一个 Newbe.Claptrap 项目. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 安装项目模板 打开控制台运行以下命令来安装最新的项目模板: dotnet new --install Newbe.Claptrap.Template 安装完毕后,可以在安装结果中查看到已经安装的项目模板. 创建项…
Docker入门与进阶(下) 作者 刘畅 时间 2020-11-12 实验主机配置 系统centos7.5 主机名 ip 配置 应用 harbor-master 172.16.1.71 2核4G/60G docker.docker-compose.harbor.Grafana. Prometheus.cAdvisor harbor-backup 172.16.1.72 2核4G/60G docker.docker-compose.harbor docker-client 172.16.1.73…
工作中有一台服务器为物理机,重启后IP就变掉了,影响到了使用,于是将服务器上的IP配置为静态方式,问题得以解决,具体如下: 1.登陆Linux服务器,cd /etc/sysconfig/network-script(文件夹名字可能略有不同) 2.找到对应网卡的IP地址的配置文件,vim ifcfg-enp2s0 3.修改文件中的BOOTPROTO为static,并且在配置文件末尾追加如下四项: IPADDR=XXX.XXX.XXX.XXX(需要静态化的IPv4地址) GATEWAY=XXX.XX…
Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇..................................................................... 4 1. 1 Linux 操作系统简介........................................................... 4 1. 2 Linux 发展趋势.................................................…
这里讨论的收集器基于JDK 1.7 Update 14之后的HotSpot虚拟机. 如果两个收集器之间存在连线,说明可以搭配使用.虚拟机所处的区域,则表示它是属于新生代收集器还是年老代收集器.在这里我们先明确一个观点,我们只是比较各个收集器,并不是挑出一个最好的.因为知道现在为止还没有最好的收集器出现,没有万能的收集器.因为如果有万能的收集器,那么HotSpot虚拟机就没有必要实现这么多不同的收集器了.这能根据自己的系统挑选出最适合自己的收集器. Serial收集器 Serial收集器是最基本.…
前言 本章将主要介绍使用Node.js开发web应用可能面临的安全问题,读者通过阅读本章可以了解web安全的基本概念,并且通过各种防御措施抵御一些常规的恶意攻击,搭建一个安全的web站点. 在学习本章之前,读者需要对HTTP协议.SQL数据库.Javascript有所了解. 什么是web安全 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,我们作为网站开发者,必须让一个web站点满足基本的安全三要素: (1)机密性,要求保护数据内容不能泄露,加密是实现机密性的常用手段. (2)完整性,要求…
Java内存区域和GC机制一.目录 1.Java垃圾回收概括 2.Java内存区域 3.Java对象的访问方式 4.Java内存访问机制 5.Java GC 机制 6.Java垃圾收集器 二.Java垃圾回收概括 1.Java GC 介绍: a) Garbage Collection 垃圾收集.垃圾回收机制: b) Java中不需要编写内存回收和垃圾清理代码,也不需要考虑内存泄漏和溢出的问题: c) 因为在Java虚拟机中存在自动内存管理和垃圾清理机制: d) 该机制会对JVM(Java 虚拟机…
在<Jvm垃圾回收器(基础篇)>中我们主要学习了判断对象是否存活还是死亡?两种基础的垃圾回收算法:引用计数法.可达性分析算法.以及Java引用的4种分类:强引用.软引用.弱引用.虚引用.和方法区的回收介绍. 那么接下来我们重点研究下虚拟机的几种常见的垃圾回收算法:标记-清除算法.复制算法.标记-整理算法.分代收集算法. 一:标记-清除算法 最基础的收集算法,总共分为‘ 标记 ’和‘ 清除 ’两个阶段 1.标记 标记出所有需要回收的对象 在<Jvm垃圾回收器(基础篇)>中说明了判断对…
此文已由作者赵计刚薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.JVM的调优主要是内存的调优,主要调两个方面: 各个代的大小 垃圾收集器选择 2.各个代的大小 常用的调节参数 -Xmx -Xms -Xmn -XX:SurvivorRatio -XX:MaxTenuringThreshold -XX:PermSize -XX:MaxPermSize 原则 在实际开发中,前台不要使用jsp,使用velocity等模板引擎技术 不要引入无关的jar -XX:Survi…
说明:本文主要参考自<分布式Java应用:基础与实践> 1.JVM的调优主要是内存的调优,主要调两个方面: 各个代的大小 垃圾收集器选择 2.各个代的大小 常用的调节参数 -Xmx -Xms -Xmn -XX:SurvivorRatio -XX:MaxTenuringThreshold -XX:PermSize -XX:MaxPermSize 原则 -Xmx==-Xms:防止堆内存频繁进行调整,调整的时机见<第一章 JVM内存结构> -Xmn:通常设为-Xmx/4(这是我在企业中实…
引言 本文主要讲述JVM中几种常见的垃圾回收算法和相关的垃圾回收器,以及常见的和GC相关的性能调优参数. GC Roots 我们先来了解一下在Java中是如何判断一个对象的生死的,有些语言比如Python是采用引用计数来统计的,但是这种做法可能会遇见循环引用的问题,在Java以及C#等语言中是采用GC Roots来解决这个问题.如果一个对象和GC Roots之间没有链接,那么这个对象也可以被视作是一个可回收的对象. Java中可以被作为GC Roots中的对象有: 虚拟机栈中的引用的对象. 方法…
最近刚好有时间,就简单的看了下JVM的几种垃圾回收器,它们都是计算机历史发展的产物,先简单的做一个整理,并没有哪一款垃圾收集器就一定是最优,还需要结合使用场景.参数配置等进行考量,根据系统情况搭配出尽可能合理优质的垃圾回收策略,而这往往需要经验的积累: 如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现. 下图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用. 并发与并行 这两个名词都是并发编程中的概念,在谈论垃圾收集器的上下文语境中,它们可以…
为什么要写这个 简单回答是:容器技术非常热门,但门槛高. 容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行. 对 IT 行业来说,这是一项非常有价值的技术.而对 IT 从业者来说,掌握容器技术是市场的需要,也是提升自我价值的重要途径. 拿我自己的工作经历来说,毕业后的头几年是做 J2EE 应用开发.后来到一家大型IT公司,公司的产品从中间件到操作系统.从服务器到存储.从虚拟化到云计算都有涉及. 我所在的部门是专门做 IT 基础设施实施服务的,最开始是做传统的…
JVM垃圾回收算法 1.标记清除(Mark-Sweep) 原理: 从根集合节点进行扫描,标记出所有的存活对象,最后扫描整个内存空间并清除没有标记的对象(即死亡对象)适用场合: 存活对象较多的情况下比较高效适用于年老代(即旧生代) 缺点: 标记清除算法带来的一个问题是会存在大量的空间碎片,因为回收后的空间是不连续的,这样给大对象分配内存的时候可能会提前触发full gc.   2.复制算法(Copying) 原理: 从根集合节点进行扫描,标记出所有的存活对象,并将这些存活的对象复制到一块儿新的内存…
目  录 1. Linux入门篇.............................................................................................................. 3 1. 1 Linux操作系统简介......................................................................................... 3 1. 2 Linux发展趋…
前序文章: JVM性能调优(1) -- JVM内存模型和类加载运行机制 JVM性能调优(2) -- 垃圾回收器和回收策略 一.内存调优的目标 新生代的垃圾回收是比较简单的,Eden区满了无法分配新对象时就触发 YoungGC.而且新生代采用的复制算法效率极高,加上新生代存活的对象很少,只要迅速标记出这少量存活对象,移动到Survivor区,然后快速回收掉Eden区,速度很快.一般一次YoungGC就耗费几毫秒或几十毫秒,所以新生代GC对系统的影响基本不是很大. 但老年代的GC就不一样了,老年代G…
G1 启动参数示例 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+PrintTenuringDistribution -XX:+UseG1GC -XX:+DisableExplicitGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:ParallelGCThreads=4 -Xloggc:/export/Logs/gclogs 打印GC日志是很重要的,对性能基本没有影响 设置一个合理的…