Archívum - 139783
október 14
Microservice architektúrák
Sziasztok,
mostanában ismerkedek a microservice architektúrákkal,
egy minta projekten dolgozok, amin keresztül ki tudom tapasztalni, hogy
hogyan is kell egy ilyen rendszert felépíteni.
Jelenleg a rendszer, és a különböző szolgáltatások így néznek ki:
- frontend01 (egy PHP-ban írt webalkalmazás, a webes felület megjelenítéséért felel)
- dispatcher01 (RabbitMQ, az üzenetek kézbesítéséért felel a különböző szolgáltatások között)
- entity01 (MySQL, az adatok tárolásáért felel)
- search01 (Solr, az adatokban való keresésért felel)
- graph01 (Neo4j - gráf alapú adatbázis-kezelő, bizonyos adatok gráf formában történő tárolásáért felel pár speciálisabb lekérdezéshez)
- mail01 (Postfix, az emailek kézbesítéséért felel)
Ahogy látszik is, van egy webes frontend, ami a webes felületért, és a megjelenítéséért felel, ezt tudja nyomkodni
a rendszert igénybevevő felhasználó.
Van egy diszpécser, ami egy queue, ez felel a rendszeren belüli üzenetek kézbesítéséért, van egy relációs adatbázis,
ahol az adatokat tároljuk, egy kereső szerver a kereséshez, egy gráf alapú adatbázis-kezelő, itt
az adatok egy bizonyos részét tároljuk, és egy mail szerver az emailek kiküldéséhez.
Tegyük fel, hogy regisztrál egy felhasználó, a felületen, ekkor a következő lépéseknek kell végrehajtódnia:
- létrejön a relációs adatbázis-kezelőben egy sor
- bekerül a kereső szerver indexébe a felhasználó
- bekerül a gráf adatbázis-kezelőbe egy csomópontként a felhasználó
- kiküldésre kerül egy megerősítő email a felhasználónak
- visszajelzünk a felhasználónak a frontend-en, hogy sikeresen regisztrált
Ha egy hagyományos alkalmazásban gondolkodunk, akkor ezeket a lépéseket a PHP script egymás után hajtja végre,
ami egy ilyen művelet esetén sok időt is igénybevehet ugye.
mostanában ismerkedek a microservice architektúrákkal,
egy minta projekten dolgozok, amin keresztül ki tudom tapasztalni, hogy
hogyan is kell egy ilyen rendszert felépíteni.
Jelenleg a rendszer, és a különböző szolgáltatások így néznek ki:
- frontend01 (egy PHP-ban írt webalkalmazás, a webes felület megjelenítéséért felel)
- dispatcher01 (RabbitMQ, az üzenetek kézbesítéséért felel a különböző szolgáltatások között)
- entity01 (MySQL, az adatok tárolásáért felel)
- search01 (Solr, az adatokban való keresésért felel)
- graph01 (Neo4j - gráf alapú adatbázis-kezelő, bizonyos adatok gráf formában történő tárolásáért felel pár speciálisabb lekérdezéshez)
- mail01 (Postfix, az emailek kézbesítéséért felel)
Ahogy látszik is, van egy webes frontend, ami a webes felületért, és a megjelenítéséért felel, ezt tudja nyomkodni
a rendszert igénybevevő felhasználó.
Van egy diszpécser, ami egy queue, ez felel a rendszeren belüli üzenetek kézbesítéséért, van egy relációs adatbázis,
ahol az adatokat tároljuk, egy kereső szerver a kereséshez, egy gráf alapú adatbázis-kezelő, itt
az adatok egy bizonyos részét tároljuk, és egy mail szerver az emailek kiküldéséhez.
Tegyük fel, hogy regisztrál egy felhasználó, a felületen, ekkor a következő lépéseknek kell végrehajtódnia:
- létrejön a relációs adatbázis-kezelőben egy sor
- bekerül a kereső szerver indexébe a felhasználó
- bekerül a gráf adatbázis-kezelőbe egy csomópontként a felhasználó
- kiküldésre kerül egy megerősítő email a felhasználónak
- visszajelzünk a felhasználónak a frontend-en, hogy sikeresen regisztrált
Ha egy hagyományos alkalmazásban gondolkodunk, akkor ezeket a lépéseket a PHP script egymás után hajtja végre,
ami egy ilyen művelet esetén sok időt is igénybevehet ugye.
good bye...
Srácok, köszi az eddigieket, én most kiszálltam. Remélhetőleg végleg. Jó volt, szép volt, az egyetlen fórum, ami viszonylag mentes volt a flame-től.
Szóval köszi.
Ádám! Ha megtennéd, hogy törlöd is a nickem, az jó lenne...
■ Szóval köszi.
Ádám! Ha megtennéd, hogy törlöd is a nickem, az jó lenne...
október 14
Don't Let Architecture Astronauts Scare You
Tartsuk az absztrakciók számát a szükséges minimumon
■ Don't Copy Code. Oh, and Inheritance and Composition are Bad, Too
Kód újrahasznosítási technikák
■ ResLog
A PHP erőforrásnaplózó felújítva PHP 5.4-hez, új extrákkal, MIT licenccel
■ október 11
Miért fut le az átirányítás után lévő kód?
Sziasztok!
Van egy főoldal, melybe 2 másikat include-olok. Az első vizsgálja, hogy a usernek joga van-e azon az URL-en tartózkodni, amelyikre lépett, ha nem, elnavigálja máshova. A második betölti a védett oldalt. Egy példa a problémámra: tegyük fel, hogy az URL admin/adminisztratorok/torles/pistike. Az első include-olt oldal megvizsgálja, hogy védett oldalra mutat-e az URL, mivel igen, átirányítja pl. a login oldalra. A második betöltené a kódot, ami törli az adatbázisból pistikét, de mivel korábban már átirányítottam a felhasználót a bejelentkező oldalra, ennek nem kéne lefutnia. Viszont mégis lefut.
Összegezve: a user átkerül a loginra, de a törlőkód mégis lefut, pedig az átirányítás hamarabb megtörtént. Ezt meg tudja vki magyarázni?
■ Van egy főoldal, melybe 2 másikat include-olok. Az első vizsgálja, hogy a usernek joga van-e azon az URL-en tartózkodni, amelyikre lépett, ha nem, elnavigálja máshova. A második betölti a védett oldalt. Egy példa a problémámra: tegyük fel, hogy az URL admin/adminisztratorok/torles/pistike. Az első include-olt oldal megvizsgálja, hogy védett oldalra mutat-e az URL, mivel igen, átirányítja pl. a login oldalra. A második betöltené a kódot, ami törli az adatbázisból pistikét, de mivel korábban már átirányítottam a felhasználót a bejelentkező oldalra, ennek nem kéne lefutnia. Viszont mégis lefut.
Összegezve: a user átkerül a loginra, de a törlőkód mégis lefut, pedig az átirányítás hamarabb megtörtént. Ezt meg tudja vki magyarázni?
október 10
Több Select-ből adatok kinyerése
Sziasztok.
Olyan problémám lenne, hogy van több dinamikusan létrejövő Select-em és Inputom.
Szeretnék adatokat kinyerni belőlük.
html:
[colorer=html]
<script type="text/javascript">
function szamolo() {
var price = 0;
var units=0;
var vat=0;
var id = 0;
var teszt =0;
$('.product').each(function() {
id += parseFloat( $(this).val() );
price += parseFloat ($('.product').find('option:selected').attr("id"));
vat += parseFloat ($('.product').find('option:selected').attr('class'));
//teszt += parseFloat ($('.product').find('option:selected').attr("id"));
} );
$('.units').each(function() { units += parseFloat( $(this).val() ); } );
var szorzat = price * units;
alert(id+': '+price + ' * '+units+ ' = '+szorzat+' | Vat:'+vat+' | teszt:'+teszt);
$('#net_amount').prev('input').val(szorzat);
};
</script>
<form action="button2.php" method="post" enctype="multipart/form-data"
role="form" id="TextForm">
<div class="form-group" style="padding-bottom:30px;" >
<select class="form-control product" name="product[]" id="product" style="width: 60%;" onChange="szamolo();">
<option selected="selected" value="1" id="100" class="12.5">name100</option>
<option value="2" id="200" class="13">name200</option>
<option value="4" id="300" class="13">name300</option>
</select>
<input style="width: 50%; float:left;" name="unit[]" id="unit" type="text" value="0" class="form-control units" onChange="szamolo();" >
</div>
<div class="form-group" style="padding-bottom:30px;" >
<select class="form-control product" name="product[]" id="product" style="width: 60%;" onChange="szamolo();">
<option selected="selected" value="1" id="100" class="12.5">name100</option>
<option value="2" id="200" class="13">name200</option>
<option value="4" id="300" class="13">name300</option>
</select>
<input style="width: 50%; float:left;" name="unit[]" id="unit" type="text" value=
Olyan problémám lenne, hogy van több dinamikusan létrejövő Select-em és Inputom.
Szeretnék adatokat kinyerni belőlük.
html:
[colorer=html]
<script type="text/javascript">
function szamolo() {
var price = 0;
var units=0;
var vat=0;
var id = 0;
var teszt =0;
$('.product').each(function() {
id += parseFloat( $(this).val() );
price += parseFloat ($('.product').find('option:selected').attr("id"));
vat += parseFloat ($('.product').find('option:selected').attr('class'));
//teszt += parseFloat ($('.product').find('option:selected').attr("id"));
} );
$('.units').each(function() { units += parseFloat( $(this).val() ); } );
var szorzat = price * units;
alert(id+': '+price + ' * '+units+ ' = '+szorzat+' | Vat:'+vat+' | teszt:'+teszt);
$('#net_amount').prev('input').val(szorzat);
};
</script>
<form action="button2.php" method="post" enctype="multipart/form-data"
role="form" id="TextForm">
<div class="form-group" style="padding-bottom:30px;" >
<select class="form-control product" name="product[]" id="product" style="width: 60%;" onChange="szamolo();">
<option selected="selected" value="1" id="100" class="12.5">name100</option>
<option value="2" id="200" class="13">name200</option>
<option value="4" id="300" class="13">name300</option>
</select>
<input style="width: 50%; float:left;" name="unit[]" id="unit" type="text" value="0" class="form-control units" onChange="szamolo();" >
</div>
<div class="form-group" style="padding-bottom:30px;" >
<select class="form-control product" name="product[]" id="product" style="width: 60%;" onChange="szamolo();">
<option selected="selected" value="1" id="100" class="12.5">name100</option>
<option value="2" id="200" class="13">name200</option>
<option value="4" id="300" class="13">name300</option>
</select>
<input style="width: 50%; float:left;" name="unit[]" id="unit" type="text" value=
október 10
Pluginek Symfonyban?
Sziasztok,
adott egy vadonatúj Symfony 2.5 projekt, amiben routingot kellene hegeszteni. A vágyódás az volna, hogy a rendszer bővíthető legyen pluginekkel, azaz mind az admin felület, mind a publikus részén be lehessen iktatni elemeket egy adott csomag telepítésével. Nem cél az, hogy a pluginek webes felületről telepíthetőek legyenek.
Elsőre arra gondoltam, hogy minden plugin legyen egy bundle és a bundle-öket a rendszer töltse be dinamikusan, viszont szeretném azt, hogy az admin felület áthelyezhető legyen másik domainre, szóval a routinggal vagyok bajban...
Szumma szummárum, kíváncsian várom, Ti hogy oldanátok meg egy plugin rendszert Symfonyban.
János
■ adott egy vadonatúj Symfony 2.5 projekt, amiben routingot kellene hegeszteni. A vágyódás az volna, hogy a rendszer bővíthető legyen pluginekkel, azaz mind az admin felület, mind a publikus részén be lehessen iktatni elemeket egy adott csomag telepítésével. Nem cél az, hogy a pluginek webes felületről telepíthetőek legyenek.
Elsőre arra gondoltam, hogy minden plugin legyen egy bundle és a bundle-öket a rendszer töltse be dinamikusan, viszont szeretném azt, hogy az admin felület áthelyezhető legyen másik domainre, szóval a routinggal vagyok bajban...
Szumma szummárum, kíváncsian várom, Ti hogy oldanátok meg egy plugin rendszert Symfonyban.
János
PHP MySQL automatikus belépet felhasználó érzékelés
Sziasztok!
Az lenne a kérdésem , hogy hogy lehet autómatikus belépett felhasználót és hogy tőle vonja le a kreditet érzékelni a Mysql UPDATE kódban?
Itt a kód:
[colorer=php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DarkSide Hungary</title>
<meta name="keywords" content="dark pixel, theme, free templates, website templates, CSS, HTML" />
<meta name="description" content="Dark Pixel Theme is a free website template provided by tooplate.com" />
<link href="tooplate_style.css" rel="stylesheet" type="text/css" />
<!-- Free Website Template by t o o p l a t e .
Az lenne a kérdésem , hogy hogy lehet autómatikus belépett felhasználót és hogy tőle vonja le a kreditet érzékelni a Mysql UPDATE kódban?
Itt a kód:
[colorer=php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DarkSide Hungary</title>
<meta name="keywords" content="dark pixel, theme, free templates, website templates, CSS, HTML" />
<meta name="description" content="Dark Pixel Theme is a free website template provided by tooplate.com" />
<link href="tooplate_style.css" rel="stylesheet" type="text/css" />
<!-- Free Website Template by t o o p l a t e .



