[转] prometheus-kubernetes and elk-kubernetes

prometheus-kubernetes

https://github.com/kayrus/prometheus-kubernetes

elk-kubernetes

https://github.com/kayrus/elk-kubernetes

Advertisements

[转] Realtime Django: Build a Chat application with django, RabbitMQ and Vue.js

Introduction and Setup

https://danidee10.github.io/2018/01/01/realtime-django-1.html

Authentication and User Management

https://danidee10.github.io/2018/01/03/realtime-django-2.html

Build an API with django rest framework

https://danidee10.github.io/2018/01/07/realtime-django-3.html

Plug the Vue frontend into the django API

https://danidee10.github.io/2018/01/10/realtime-django-4.html

uWSGI WebSockets

https://danidee10.github.io/2018/01/13/realtime-django-5.html

[转]Comparing Rails and Phoenix

Part I

https://blog.codeship.com/comparing-rails-and-phoenix-part-i/?utm_campaign=Weekly%20Newsletters&utm_source=hs_email&utm_medium=email&utm_content=56190531&_hsenc=p2ANqtz-8p-uu99RRk3IXWqp8cSM1gFTBkIIIxgjx8WLY0r5dAHQzsnvlhhUJbA4qfmsGaMR_Hkh0QKUvKwSDyHd6v_UcOiu8ZDg&_hsmi=56190724

Part II

https://blog.codeship.com/comparing-rails-and-phoenix-part-ii/?utm_campaign=Weekly%20Newsletters&utm_source=hs_email&utm_medium=email&utm_content=56190531&_hsenc=p2ANqtz-89A3Nyb40sIRjpUl0NqXVoziPMZfxKtMztBKLoHM6OfJqoAh1zryN0_TO-F_MIllf2ogQESPj1nTQIgj-giOOmWmD6oA&_hsmi=56190724

如何学习一门新语言,比如Elixir?

简单地说,去尝试一门新语言,这些要素要了解:语言,框架,生态


Elixir in Action 这本书的结构很经典,不愧来自 Manning 出版社,分以下三大部分,整体印象:

  • 语言(The language)
  • 平台(The platform)
  • 产品(Production)

一.语言

语言本身详细的东西,起源,意义,用途,用法,特点。

  • First steps(关于这门语言的起源,应用范围及特点)
  • Building blocks(基本语法,如何使用这门语言)
  • Control flow(也是语法的一部分,控制方式的具体讲解)
  • Data abstractions(数据抽象的几种形式)

二.平台

从这门语言特点的方面介绍它更擅长的平台,适合高并发系统,详解如何去实现。

  • Concurrency primitives(介绍原理,进程,有状态服务进程,运行时注意事项)
  • Generic server processes(建立一个通用服务器进程,使用这门语言提供的服务方式去操作)
  • Building a concurrent system(以这门语言提供的项目管理工具mix去实施,分析进程依赖,持久化数据,推理进程)
  • Fault-tolerance basics(关于容错,从运行时错误,在并发系统中的错误,进程管理方面详解)
  • Isolating error effects(隔离错误的影响,包括对进程的详细控制,动态启动任务的具体实现)
  • Sharing state(单进程瓶颈,Erlang 项式存储相关,这和Erlang语言的特性概念相关)

三.产品

在实际项目中,真正使用的方法。具体到从完整项目出发的方方面面实现细节。

  • Working with components(用组建去实施,介绍OTP应用,用依赖去工作,编写web服务器,管理应用环境)
  • Building a distributed system(介绍分散系统,启动集群,在节点间通信,进程发现,编写容错集群,高可用系统实现;网络注意事项:节点名称,cookie,防火墙等)- Running the system(用mix工具运行系统,发布OTP,分析系统行为)

这样的结构,很清晰地从大体上介绍,讲解了这门语言的来源,特点,使用,应用场景,设计时的注意事项(当然也包括设计方法)等,很全面系统地介绍一门语言,特别是对于从零刚接触它的技术人员,入门首选。


在整体上掌握新技术是必要的,不懂语法无法运用,从一个个小程序练习慢慢入门也行,但大局不明确,容易走弯路,速度慢,费时间。
就像到一个新国家,了解新语言,新文化。

How to use ajax feature with Phoenix framework

Template

<meta name="csrf" content="<%= Plug.CSRFProtection.get_csrf_token() %>">

<a href="https://code.jquery.com/jquery-3.2.1.min.js">https://code.jquery.com/jquery-3.2.1.min.js</a>


  var CSRF_TOKEN = document.querySelector("meta[name=csrf]").content;

  $("#btn").click(function(){
    $.ajax({
      url: "/users/get_posts",
      type: "POST",
      dataType: "json",
      beforeSend: function(xhr) {
        xhr.setRequestHeader("X-CSRF-Token", CSRF_TOKEN);
      },
      data: {
        "user_id" : ""
      },
      success: function(data){
        $("#posts").val(data.posts);
        $("#btn").removeClass("btn btn-primary").addClass("btn btn-success");
      },
      error: function() {
        console.log("An error occurred");
      }
    });
  });


<input id="btn" type="button" class="btn btn-primary" value="Go!"/>
<div id="posts"></div>

Controller

def get_posts(conn, %{"user_id" => user_id}) do
  posts = Posts.get_post!(user_id)
  json conn, %{ posts: posts }
end

Router

scope "/", HelloWeb do
  resources "/users", UserController do
    # ...
    post "/get_posts", UserController, :get_posts
  end
end

Reference